package Ġcom . w yn n lab . min est om . util Ċ Ċ import Ġnet . min est om . server . tag . Tag Ċ import Ġnet . min est om . server . tag . Tag Readable Ċ import Ġnet . min est om . server . tag . Tag Writable Ċ import Ġkotlin . reflect . K Property Ċ Ċ fun Ġ< T , ĠH > Ġtag ( handler : ĠH , Ġtag : ĠTag < T >): ĠTag Delegate < T , ĠH > Ġwhere ĠH Ġ: ĠTag Readable , ĠH Ġ: ĠTag Writable Ġ= ĊĠĠĠ ĠTag Delegate ( handler , Ġtag ) Ċ Ċ class ĠTag Delegate < T , ĠH >( private Ġval Ġhandler : ĠH , Ġprivate Ġval Ġtag : ĠTag < T >) Ġwhere ĠH Ġ: ĠTag Readable , ĠH Ġ: ĠTag Writable Ġ{ ĊĠĠĠ Ġoperator Ġfun ĠgetValue ( this Ref : ĠAny , Ġproperty : ĠK Property < *> ): ĠT ? Ġ= Ġhandler . getTag ( tag ) ĊĊĠĠĠ Ġoperator Ġfun ĠsetValue ( this Ref : ĠAny , Ġproperty : ĠK Property <* >, Ġvalue : ĠT ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġhandler . setTag ( tag , Ġvalue ) ĊĠĠĠ Ġ} Ċ }