library;
import self as self;
import "dart:core" as core;

class B<X extends core::Object, Y extends core::Object> extends core::Object {
  synthetic constructor •() → void
    ;
}
class C1<X extends (self::C1::Y) → self::C1::X, Y extends (self::C1::Y) → self::C1::X> extends core::Object {
  synthetic constructor •() → void
    ;
}
class C2<X extends (self::C2::Y) → self::C2::X, Y extends (self::C2::X) → self::C2::Y> extends core::Object {
  synthetic constructor •() → void
    ;
}
class C3<X extends (self::C3::X, self::C3::Y) → self::C3::X, Y extends (self::C3::X, self::C3::Y) → self::C3::X> extends core::Object {
  synthetic constructor •() → void
    ;
}
class C4<X extends (self::C4::X, self::C4::Y) → self::C4::X, Y extends (self::C4::X, self::C4::Y) → self::C4::Y> extends core::Object {
  synthetic constructor •() → void
    ;
}
class D1<X extends self::B<self::D1::X, self::D1::Y>, Y extends (self::D1::Y) → self::D1::X> extends core::Object {
  synthetic constructor •() → void
    ;
}
class D2<X extends self::B<self::D2::X, self::D2::Y>, Y extends (self::D2::X) → self::D2::Y> extends core::Object {
  synthetic constructor •() → void
    ;
}
class D3<X extends self::B<self::D3::X, self::D3::Y>, Y extends (self::D3::X, self::D3::Y) → self::D3::X> extends core::Object {
  synthetic constructor •() → void
    ;
}
class D4<X extends self::B<self::D4::X, self::D4::Y>, Y extends (self::D4::X, self::D4::Y) → self::D4::Y> extends core::Object {
  synthetic constructor •() → void
    ;
}
class E<X extends (self::E::X) → self::E::X> extends core::Object {
  synthetic constructor •() → void
    ;
}
static field dynamic lc1;
static field dynamic mc1;
static field dynamic lc2;
static field dynamic mc2;
static field dynamic lc3;
static field dynamic mc3;
static field dynamic lc4;
static field dynamic mc4;
static field dynamic ld1;
static field dynamic md1;
static field dynamic ld2;
static field dynamic md2;
static field dynamic ld3;
static field dynamic md3;
static field dynamic ld4;
static field dynamic md4;
static field dynamic le;
static field dynamic me;
static method main() → dynamic
  ;
