package Ġio . sun land . chain pass . common Ċ Ċ enum Ġclass ĠChain Status Ġ{ ĠACT UAL , ĠD RA FT , ĠREMOVE , ĠSELECT Ġ} Ċ Ċ class ĠChain Ġ{ ĊĠĠĠ Ġclass ĠName ( value : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġvalue Ġ= Ġvalue Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠĠĠĠĠ Ġval ĠisValid Ġ= Ġvalue ?. let Ġ{ Ġ!( value . isEmpty () Ġ|| Ġvalue . length Ġ> Ġ 1 6 ) Ġ} Ġ?: Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠKey ( value : ĠString ? Ġ= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġvalue Ġ= Ġvalue Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠĠĠĠĠ Ġvar ĠisValid Ġ= Ġvalue ?. let Ġ{ Ġ!( value . isEmpty () Ġ|| Ġvalue . length Ġ> Ġ 3 2 ) Ġ} Ġ?: Ġtrue ĊĊĠĠĠĠĠĠĠ Ġfun Ġmatches ( key : ĠString ) Ġ= Ġif Ġ( value Ġ!= Ġkey ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Key Ġis Ġnot Ġvalid ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĠUnit ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġid Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġname Ġ= ĠName () ĊĠĠĠ Ġvar Ġkey Ġ= ĠKey () ĊĠĠĠ Ġvar Ġstatus Ġ= ĠChain Status . DR AFT Ċ } Ċ