abstract class AbstractSuper {
  void set extendedConcreteSetter(int value) {}
  void set extendedAbstractSetter(int value);
  void set declaredConcreteExtendsConcreteSetter(int value) {}
  void set declaredAbstractExtendsConcreteSetter(int value) {}
  void set declaredConcreteExtendsAbstractSetter(int value);
  void set declaredAbstractExtendsAbstractSetter(int value);
}

abstract class AbstractClass extends AbstractSuper {
  void set declaredConcreteSetter(int value) {}
  void set declaredAbstractSetter(int value);
  void set declaredConcreteExtendsConcreteSetter(int value) {}
  void set declaredAbstractExtendsConcreteSetter(int value);
  void set declaredConcreteExtendsAbstractSetter(int value) {}
  void set declaredAbstractExtendsAbstractSetter(int value);
}

main() {}
