package

public open class DeepBase : DeeperBase {
    public constructor DeepBase()
    public open override /*1*/ /*fake_override*/ val deeperBaseProp: kotlin.Int
    public open override /*1*/ /*fake_override*/ fun deeperBaseFun(): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public final class DeepDerived : DeepBase, DeepInterface {
    public constructor DeepDerived()
    public open override /*1*/ val deeperBaseProp: kotlin.Int
    public final fun callsSuperDeeperBaseFun(): kotlin.Unit
    public final fun callsSuperInterfaceFuns(): kotlin.Unit
    public open override /*1*/ fun deepInterfaceFun(): kotlin.Unit
    public open override /*1*/ fun deeperBaseFun(): kotlin.Unit
    public open override /*1*/ fun deeperInterfaceFun(): kotlin.Unit
    public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public final fun getsSuperDeeperBaseProp(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface DeepInterface : DeeperInterface {
    public open fun deepInterfaceFun(): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun deeperInterfaceFun(): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public open class DeeperBase {
    public constructor DeeperBase()
    public open val deeperBaseProp: kotlin.Int
    public open fun deeperBaseFun(): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

public interface DeeperInterface {
    public open fun deeperInterfaceFun(): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
