<! DIRECT IV ES (" HELPER S : ĠREF LECT ") !> Ċ Ċ package Ġorg . jetbrains .< ! ELEMENT ( 1 )! > Ċ Ċ open Ġclass Ġ<! ELEMENT ( 2 )! > Ċ open Ġclass Ġ<! ELEMENT ( 3 )! >< T > Ċ Ċ type alias ĠD << ! ELEMENT ( 6 )! >> Ġ= Ġ<! ELEMENT ( 3 )! >< <! ELEMENT ( 6 )! >> Ċ Ċ inline Ġfun Ġ< re ified Ġ<! ELEMENT ( 4 )! >, Ġre ified Ġ<! ELEMENT ( 5 )! >> Ġf 1 () Ġ= ĊĠĠĠ Ġwhen Ġ( <! ELEMENT ( 2 )! >()) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Ġ<! ELEMENT ( 4 )! > Ġ-> Ġtrue ĊĠĠĠĠĠĠĠ Ġis Ġ<! ELEMENT ( 5 )! > Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠ Ġ} Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠD << ! ELEMENT ( 2 )! >>> ĠT . f 2 ( value : ĠT ) Ġ= Ġvalue Ġis Ġ<! ELEMENT ( 2 )! > Ċ Ċ class ĠA < K : ĠList < out Ġ<! ELEMENT ( 3 )! >< out ĠString >>> Ġ{ ĊĠĠĠ Ġval Ġx Ġ= Ġtrue Ċ } Ċ Ċ class ĠB < K , ĠT : ĠA < List < out Ġ<! ELEMENT ( 3 )! >< String >>>> Ġ{ ĊĠĠĠ Ġvar Ġx Ġ= Ġfalse Ċ } Ċ Ċ fun Ġ< T Ġ: Ġorg . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 2 )! >> ĠT . f 3 () Ġ= Ġfalse Ċ Ċ fun Ġf 4 ( x 1 : ĠList < out Ġ<! ELEMENT ( 3 )! >< String >> ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġtrue Ċ } Ċ Ċ fun Ġf 5 ( x 1 : ĠList < List < List << ! ELEMENT ( 2 )! >? >> >) Ġ= Ġfalse Ċ Ċ fun Ġf 6 ( x 1 : Ġ<! ELEMENT ( 2 )! >) Ġ= Ġfalse Ċ Ċ fun Ġf 7 ( x 1 : Ġ<! ELEMENT ( 3 )! >< * >) Ġ= Ġtrue Ċ Ċ fun Ġf 8 ( x 1 : Ġ<! ELEMENT ( 3 )! >< out ĠAny >) Ġ= Ġfalse Ċ Ċ fun Ġf 9 ( x 1 : Ġ<! ELEMENT ( 3 )! >< out ĠList << ! ELEMENT ( 3 )! >< * >> >) Ġ= Ġtrue Ċ Ċ val Ġx 1 : ĠList << ! ELEMENT ( 2 )! > ?> Ġ= ĠlistOf ( <! ELEMENT ( 2 )! >(), Ġnull , Ġ<! ELEMENT ( 2 )! >()) Ċ Ċ late init Ġvar Ġx 2 : ĠList << ! ELEMENT ( 3 )! >< out ĠNumber > ?> Ċ Ċ fun Ġbox (): ĠString ? Ġ{ ĊĠĠĠ Ġx 2 Ġ= ĠlistOf ( <! ELEMENT ( 3 )! >< Int >(), Ġnull , Ġ<! ELEMENT ( 3 )! >()) ĊĊĠĠĠ Ġif Ġ(! f 1 << ! ELEMENT ( 2 )! >, Ġ<! ELEMENT ( 3 )! >< <! ELEMENT ( 2 )! >>> ()) Ġreturn Ġnull ĊĠĠĠ Ġif Ġ( <! ELEMENT ( 3 )! >< <! ELEMENT ( 2 )! >> (). f 2 ( <! ELEMENT ( 3 )! > ())) Ġreturn Ġnull ĊĠĠĠ Ġif Ġ(! A < List << ! ELEMENT ( 3 )! >< String >>> (). x ) Ġreturn Ġnull ĊĠĠĠ Ġif Ġ( B << ! ELEMENT ( 2 )! >, ĠA < List << ! ELEMENT ( 3 )! >< String >>>> (). x ) Ġreturn Ġnull ĊĠĠĠ Ġif Ġ( <! ELEMENT ( 2 )! >(). f 3 ()) Ġreturn Ġnull ĊĠĠĠ Ġif Ġ(! f 4 ( listOf ( <! ELEMENT ( 3 )! >() ))) Ġreturn Ġnull ĊĠĠĠ Ġif Ġ( f 5 ( listOf ( listOf ( listOf ( null , Ġ<! ELEMENT ( 2 )! >(), Ġnull , Ġ<! ELEMENT ( 2 )! > ())) ))) Ġreturn Ġnull ĊĠĠĠ Ġif Ġ( f 6 ( <! ELEMENT ( 2 )! > ())) Ġreturn Ġnull ĊĠĠĠ Ġif Ġ(! f 7 ( <! ELEMENT ( 3 )! >< Nothing > ())) Ġreturn Ġnull ĊĠĠĠ Ġif Ġ( f 8 ( <! ELEMENT ( 3 )! >< <! ELEMENT ( 2 )! >> ())) Ġreturn Ġnull ĊĠĠĠ Ġif Ġ(! f 9 ( <! ELEMENT ( 3 )! >< List << ! ELEMENT ( 3 )! >< <! ELEMENT ( 2 )! >>>> ())) Ġreturn Ġnull ĊĊĠĠĠ Ġif Ġ( x 1 . contains All ( listOf ( <! ELEMENT ( 2 )! >(), Ġnull , Ġ<! ELEMENT ( 2 )! >() ))) Ġreturn Ġnull ĊĠĠĠ Ġif Ġ( x 2 . contains All ( listOf ( <! ELEMENT ( 3 )! >< Int >(), Ġnull , Ġ<! ELEMENT ( 3 )! >() ))) Ġreturn Ġnull ĊĊĠĠĠ Ġif Ġ(! check Callable Type Parameters With Upper Bounds ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! ELEMENT ( 3 )! >< <! ELEMENT ( 2 )! >>:: f 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" T ", ĠlistOf (" org . jetbrains .< ! ELEMENT ( 1 )! >. D < org . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 2 )! >> Ġ/* Ġ= Ġorg . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 3 )! >< org . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 2 )! >> Ġ*/ ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ)) Ġreturn Ġnull ĊĊĠĠĠ Ġif Ġ(! check ClassType Parameters With Upper Bounds ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" K ", ĠlistOf (" kotlin . collections . List < out Ġorg . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 3 )! >< out Ġkotlin . String >> ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ)) Ġreturn Ġnull ĊĊĠĠĠ Ġif Ġ(! check ClassType Parameters With Upper Bounds ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" T ", ĠlistOf (" org . jetbrains .< ! ELEMENT ( 1 )! >. A < kotlin . collections . List < out Ġorg . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 3 )! >< kotlin . String >>> ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ)) Ġreturn Ġnull ĊĊĠĠĠ Ġif Ġ(! check Callable Type Parameters With Upper Bounds ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! ELEMENT ( 2 )! >:: f 3 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" T ", ĠlistOf (" org . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 2 )! > ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ)) Ġreturn Ġnull ĊĊĠĠĠ Ġif Ġ(! check ParameterType (:: f 4 , Ġ" x 1 ", Ġ" kotlin . collections . List < out Ġorg . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 3 )! >< kotlin . String >> ")) Ġreturn Ġnull ĊĊĠĠĠ Ġif Ġ(! check ParameterType (:: f 5 , Ġ" x 1 ", Ġ" kotlin . collections . List < kotlin . collections . List < kotlin . collections . List < org . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 2 )! >? >>> ")) Ġreturn Ġnull ĊĊĠĠĠ Ġif Ġ(! check PropertyType (:: x 1 , Ġ" kotlin . collections . List < org . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 2 )! > ?> ")) Ġreturn Ġnull ĊĊĠĠĠ Ġif Ġ(! check PropertyType (:: x 2 , Ġ" kotlin . collections . List < org . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 3 )! >< out Ġkotlin . Number > ?> ")) Ġreturn Ġnull ĊĊĠĠĠ Ġif Ġ(! check ParameterType (:: f 6 , Ġ" x 1 ", Ġ" org . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 2 )! > ")) Ġreturn Ġnull ĊĊĠĠĠ Ġif Ġ(! check ParameterType (:: f 7 , Ġ" x 1 ", Ġ" org . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 3 )! >< *> ")) Ġreturn Ġnull ĊĊĠĠĠ Ġif Ġ(! check ParameterType (:: f 8 , Ġ" x 1 ", Ġ" org . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 3 )! >< out Ġkotlin . Any > ")) Ġreturn Ġnull ĊĊĠĠĠ Ġif Ġ(! check ParameterType (:: f 9 , Ġ" x 1 ", Ġ" org . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 3 )! >< out Ġkotlin . collections . List < org . jetbrains .< ! ELEMENT ( 1 )! >. <! ELEMENT ( 3 )! >< * >>> ")) Ġreturn Ġnull ĊĊĠĠĠ Ġreturn Ġ" OK " Ċ } Ċ