package

package s {
    public fun </*0*/ T : s.C> bar(/*0*/ in1: s.In<T>): T
    public fun </*0*/ T> foo(/*0*/ in1: s.In<T>, /*1*/ in2: s.In<T>): T
    public fun test(/*0*/ inA: s.In<s.A>): kotlin.Unit
    public fun test(/*0*/ inA: s.In<s.A>, /*1*/ inB: s.In<s.B>, /*2*/ inC: s.In<s.C>): kotlin.Unit
    public fun use(/*0*/ vararg a: kotlin.Any? /*kotlin.Array<out kotlin.Any?>*/): kotlin.Array<out kotlin.Any?>

    public interface A {
        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 B {
        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 C : s.A, s.B {
        public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
        public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
        public open override /*2*/ /*fake_override*/ fun toString(): kotlin.String
    }

    public interface In</*0*/ in T> {
        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
    }
}
