class S1 {
  int s;
  S1([int x = 0]) : s = x - 1;
}

class C1 extends S1 {
  int c;
  C1([super.x]) : c = x + 1;
}

class S2 {
  int s;
  S2({int x = 0}) : s = x - 1;
}

class C2 extends S2 {
  int c;
  C2({super.x}) : c = x + 1;
}

class S3 {
  int s;
  S3([int x = 0]) : s = x - 1;
}

class C3 extends S3 {
  int c;
  C3([super.x = 42]) : c = x + 1;
}

class S4 {
  int s;
  S4({int x = 0}) : s = x - 1;
}

class C4 extends S4 {
  int c;
  C4({super.x = 42}) : c = x + 1;
}

class S5 {
  num a;
  S5([num x = 3.14]) : a = x - 1;
}

class C5 extends S5 {
  C5([int super.x]);
}

class S6 {
  num? a;
  S6([num? x = 3.14]) : a = x;
}

class C6 extends S6 {
  int? b;
  C6([int? super.x]);
}

class S7 {
  int s;
  S7([int x = 0]) : s = x - 1;
}

class C7 extends S7 {
  int c;
  C7([super.x]) : c = x + 1;
}

class CC7 extends C7 {
  int cc;
  CC7([super.x]) : cc = x * 1;
}

class S8 {
  int s;
  S8([int x = 0]) : s = x - 1;
}

class CC8 extends C8 {
  int cc;
  CC8([super.x]) : cc = x * 1;
}

class C8 extends S8 {
  int c;
  C8([super.x]) : c = x + 1;
}

class CC9 extends C9 {
  int cc;
  CC9([super.x]) : cc = x * 1;
}

class C9 extends S9 {
  int c;
  C9([super.x]) : c = x + 1;
}

class S9 {
  int s;
  S9([int x = 0]) : s = x - 1;
}

class Ap {
  Ap([num x = 3.14]);
}

class Bp extends Ap {
  Bp([int super.x]);
  Bp.req(int super.x);
}

class An {
  An({num x = 3.14});
}

class Bn extends An {
  Bn({int super.x});
  Bn.req({required int super.x});
}

main() {}
