package Ġorg . du ang s use . bin . pat . basic Ċ Ċ import Ġorg . du ang s use . bin .* Ċ import Ġorg . du ang s use . bin . pat . Pattern Ċ import Ġorg . du ang s use . bin . pat . Tuple Ċ import Ġorg . du ang s use . bin . type .* Ċ import Ġkotlin . reflect . K Property Ċ Ċ open Ġclass ĠAny Tuple ( size : ĠC nt ) ĊĠ Ġ: ĠTuple < Any >( size ) Ġ{ ĊĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠ Ġfinal Ġoverride Ġval Ġitems : ĠArray < Any > Ġ= ĠarrayOf Null s < Any >( size ) Ġas ĠArray < Any > Ċ } Ċ Ċ open Ġclass ĠAny Seq < T UP : ĠTuple < Any >>( creator : ĠProducer < T UP >, Ġvar arg Ġitems : ĠPattern < Any >): ĠSeq < T UP , ĠAny >( creator , Ġ* items ) Ċ open Ġclass ĠAny Repeat ( s izer : ĠPattern < Cnt >, Ġitem : ĠPattern < Any >): ĠRepeat < Any >( s izer , Ġitem ) Ċ open Ġclass ĠAny Cond ( flag : ĠPattern < Idx >, Ġvar arg Ġconditions : ĠCase < Idx , ĠAny >): ĠCon d < Idx , ĠAny >( flag , Ġ* conditions ) Ċ open Ġclass ĠCon d ById x < T >( flag : ĠPattern < Idx >, Ġvar arg Ġconditions : ĠCase < Idx , ĠT >): ĠCon d < Idx , ĠT >( flag , Ġ* conditions ) Ċ abstract Ġclass ĠTag Any Seq < TAG , ĠT UP : ĠAny Tuple >( override Ġval Ġtag : ĠTAG , ĊĠ Ġcreator : ĠProducer < T UP >, Ġvar arg Ġitems : ĠPattern < Any >): ĠAny Seq < T UP >( creator , Ġ* items ), ĠCon d . Case < TAG , ĠT UP > Ċ Ċ class ĠCast Index < T >( private Ġval Ġidx : ĠI dx ) Ġ{ ĊĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠ Ġoperator Ġfun ĠgetValue ( self : ĠTuple <* >, Ġ_ p : ĠK Property < *> ): ĠT Ġ= Ġself [ idx ] Ġas ĠT ĊĠ Ġoperator Ġfun ĠsetValue ( self : ĠTuple < Any >, Ġ_ p : ĠK Property <* >, Ġvalue : ĠT ) Ġ{ Ġself [ idx ] Ġ= Ġvalue Ġas ĠAny Ġ} ĊĠ Ġcompanion Ġobject ĠDelegate Ġ{ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT > Ġ@ receiver : Suppress (" unused ") ĊĠĠĠ ĠTuple <* >. indexOf ( idx : ĠI dx ) Ġ= ĠCast Index < T >( idx ) ĊĠ Ġ} Ċ } Ċ Ċ inline Ġoperator Ġfun Ġ< re ified ĠT : ĠAny > ĠPattern < T >. unary Plus () Ġ= Ġobject : ĠPattern . By Sized < Any >( this ) Ġ{ ĊĠ Ġoverride Ġfun Ġread ( s : ĠReader ): ĠAny Ġ= Ġthis @ unary Plus . read ( s ) ĊĠ Ġoverride Ġfun Ġwrite ( s : ĠWriter , Ġx : ĠAny ) Ġ= Ġthis @ unary Plus . write ( s , Ġx Ġas ĠT ) ĊĠ Ġoverride Ġfun Ġwrite Size ( x : ĠAny ): ĠC nt Ġ= Ġthis @ unary Plus . write Size ( x Ġas ĠT ) Ċ } Ċ