package

public abstract class AL : java.util.ArrayList<p.P> {
    public constructor AL()
    invisible_fake final override /*1*/ /*fake_override*/ var elementData: kotlin.Array<(out) kotlin.Any!>!
    protected/*protected and package*/ final override /*1*/ /*fake_override*/ var modCount: kotlin.Int
    invisible_fake final override /*1*/ /*fake_override*/ var size: kotlin.Int
    public open override /*1*/ /*fake_override*/ val size: kotlin.Int
    public open override /*1*/ /*fake_override*/ fun add(/*0*/ index: kotlin.Int, /*1*/ element: p.P): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun add(/*0*/ element: p.P): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ index: kotlin.Int, /*1*/ elements: kotlin.collections.Collection<p.P>): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun addAll(/*0*/ elements: kotlin.collections.Collection<p.P>): kotlin.Boolean
    invisible_fake open override /*1*/ /*fake_override*/ fun batchRemove(/*0*/ p0: kotlin.collections.(Mutable)Collection<*>!, /*1*/ p1: kotlin.Boolean): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun clear(): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
    public open override /*1*/ /*fake_override*/ fun contains(/*0*/ element: p.P): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun containsAll(/*0*/ elements: kotlin.collections.Collection<p.P>): kotlin.Boolean
    invisible_fake open override /*1*/ /*fake_override*/ fun elementData(/*0*/ p0: kotlin.Int): p.P!
    public open override /*1*/ /*fake_override*/ fun ensureCapacity(/*0*/ p0: kotlin.Int): kotlin.Unit
    invisible_fake open override /*1*/ /*fake_override*/ fun ensureCapacityInternal(/*0*/ p0: kotlin.Int): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    invisible_fake open override /*1*/ /*fake_override*/ fun fastRemove(/*0*/ p0: kotlin.Int): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun get(/*0*/ index: kotlin.Int): p.P
    invisible_fake open override /*1*/ /*fake_override*/ fun grow(/*0*/ p0: kotlin.Int): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun indexOf(/*0*/ element: p.P): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun isEmpty(): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun iterator(): kotlin.collections.MutableIterator<p.P>
    public open override /*1*/ /*fake_override*/ fun lastIndexOf(/*0*/ element: p.P): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun listIterator(): kotlin.collections.MutableListIterator<p.P>
    public open override /*1*/ /*fake_override*/ fun listIterator(/*0*/ index: kotlin.Int): kotlin.collections.MutableListIterator<p.P>
    invisible_fake open override /*1*/ /*fake_override*/ fun outOfBoundsMsg(/*0*/ p0: kotlin.Int): kotlin.String!
    invisible_fake open override /*1*/ /*fake_override*/ fun rangeCheck(/*0*/ p0: kotlin.Int): kotlin.Unit
    invisible_fake open override /*1*/ /*fake_override*/ fun rangeCheckForAdd(/*0*/ p0: kotlin.Int): kotlin.Unit
    invisible_fake open override /*1*/ /*fake_override*/ fun readObject(/*0*/ p0: java.io.ObjectInputStream!): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun remove(/*0*/ element: p.P): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun removeAll(/*0*/ elements: kotlin.collections.Collection<p.P>): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun removeAt(/*0*/ p0: kotlin.Int): p.P
    protected/*protected and package*/ open override /*1*/ /*fake_override*/ fun removeRange(/*0*/ p0: kotlin.Int, /*1*/ p1: kotlin.Int): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun retainAll(/*0*/ elements: kotlin.collections.Collection<p.P>): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun set(/*0*/ index: kotlin.Int, /*1*/ element: p.P): p.P
    public open override /*1*/ /*fake_override*/ fun subList(/*0*/ fromIndex: kotlin.Int, /*1*/ toIndex: kotlin.Int): kotlin.collections.MutableList<p.P>
    public open override /*1*/ /*fake_override*/ fun toArray(): kotlin.Array<(out) kotlin.Any!>!
    public open override /*1*/ /*fake_override*/ fun </*0*/ T : kotlin.Any!> toArray(/*0*/ p0: kotlin.Array<(out) T!>!): kotlin.Array<(out) T!>!
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    public open override /*1*/ /*fake_override*/ fun trimToSize(): kotlin.Unit
    invisible_fake open override /*1*/ /*fake_override*/ fun writeObject(/*0*/ p0: java.io.ObjectOutputStream!): kotlin.Unit
}

public abstract class K : p.C<p.P> {
    public constructor K()
    public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
    public open override /*1*/ /*fake_override*/ fun foo(/*0*/ p: p.A<p.P!>): kotlin.Unit
    public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
    public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}

package p {

    public interface A</*0*/ TA> {
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public abstract fun foo(/*0*/ p: p.A<TA>): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public open class B</*0*/ TB : kotlin.Any!> : p.A<TB!> {
        public constructor B</*0*/ TB : kotlin.Any!>()
        public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public/*package*/ open override /*1*/ fun foo(/*0*/ p: p.A<TB!>): kotlin.Unit
        public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public open class C</*0*/ TC : kotlin.Any!> : p.B<TC!>, p.A<TC!> {
        public constructor C</*0*/ TC : kotlin.Any!>()
        public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*2*/ /*fake_override*/ fun foo(/*0*/ p: p.A<TC!>): kotlin.Unit
        public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public interface G</*0*/ TG : kotlin.Any!> {
        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 P {
        public constructor P()
        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
    }
}
