package Ġcom . g ig ya . android . sdk . nss . utils Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . reflect . Type Token Ċ Ċ fun Ġ< T > ĠT . guard ( block : ĠT . () Ġ-> ĠUnit ): ĠT Ġ{ ĊĠĠĠ Ġif Ġ( this Ġ== Ġnull ) Ġblock (); Ġreturn Ġthis Ċ } Ċ Ċ fun Ġ< T > ĠT . serialize ToMap ( gson : ĠGson ): ĠMap < String , ĠAny > Ġ{ ĊĠĠĠ Ġreturn Ġconvert ( gson ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠMap < String , ĠAny >. to Data Class ( gson : ĠGson ): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġconvert ( gson ) Ċ } Ċ Ċ inline Ġfun Ġ< I , Ġre ified ĠO > ĠI . convert ( gson : ĠGson ): ĠO Ġ{ ĊĠĠĠ Ġval Ġjson Ġ= Ġgson . toJson ( this ) ĊĠĠĠ Ġreturn Ġgson . fromJson ( json , Ġobject Ġ: ĠType Token < O >() Ġ{} . type ) Ċ } Ċ Ċ inline Ġfun Ġ< K , Ġre ified ĠV > ĠString . serialize ( gson : ĠGson ): ĠMap < K , ĠV > Ġ{ ĊĠĠĠ Ġreturn Ġgson . fromJson ( this , Ġobject Ġ: ĠType Token < Map < K , ĠV >>() Ġ{} . type ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠAny ?. ref ine ( block : ĠT . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( this Ġis ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠAny ?. ref ine ( block : ĠT . () Ġ-> ĠUnit , Ġex : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( this Ġis ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġex () ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠAny ?. ref ined ( block : Ġ( T ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( this Ġis ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock ( this ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠAny ?. ref ined ( block : Ġ( T ) Ġ-> ĠUnit , Ġex : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġif Ġ( this Ġis ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġblock ( this ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġex () ĊĠĠĠ Ġ} Ċ } ĊĊ