package Ġlt . vil n ius . t var ka u . utils Ċ Ċ /** Ċ Ġ* ĠSee Ġ< a Ġhref =" https :// lt . wikipedia . org / wiki / Asm ens _ k od as "> WI KI Ġentry Ġfor Ġdetails </ a > Ċ Ġ* Ċ Ġ* Ġ@ author ĠMart yn as ĠJ ur k us Ċ Ġ*/ Ċ object ĠPersonal Code Validator Ġ{ ĊĊĠĠĠ Ġfun Ġvalidate ( personal Code : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( personal Code . length Ġ!= Ġ 1 1 ) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( personal Code . map ( Char :: is Digit ). any Ġ{ Ġfalse Ġ}) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġnumbers Ġ= Ġpersonal Code . map Ġ{ ĠCharacter . get Numeric Value ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcontrol Ġ= Ġnumbers . last () ĊĊĠĠĠĠĠĠĠ Ġvar Ġsum Ġ= Ġnumbers . take ( 1 0 ). map Indexed Ġ{ Ġindex , Ġnumber Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFIRST _ ITER ATION _ MULTI PLI ERS [ index ] Ġ* Ġnumber ĊĠĠĠĠĠĠĠ Ġ}. sum () ĊĊĠĠĠĠĠĠĠ Ġvar Ġchecksum Ġ= Ġsum Ġ% Ġ 1 1 ĊĠĠĠĠĠĠĠ Ġif Ġ( checksum Ġ!= Ġ 1 0 Ġ&& Ġchecksum Ġ== Ġcontrol ) Ġreturn Ġtrue ĊĊĠĠĠĠĠĠĠ Ġsum Ġ= Ġnumbers . take ( 1 0 ). map Indexed Ġ{ Ġindex , Ġnumber Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSE COND _ ITER ATION _ MULTI PLI ERS [ index ] Ġ* Ġnumber ĊĠĠĠĠĠĠĠ Ġ}. sum () ĊĊĠĠĠĠĠĠĠ Ġchecksum Ġ= Ġsum Ġ% Ġ 1 1 Ġ% Ġ 1 0 ĊĊĠĠĠĠĠĠĠ Ġreturn Ġchecksum Ġ== Ġcontrol ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠFIRST _ ITER ATION _ MULTI PLI ERS Ġ= ĠarrayOf ( 1 , Ġ 2 , Ġ 3 , Ġ 4 , Ġ 5 , Ġ 6 , Ġ 7 , Ġ 8 , Ġ 9 , Ġ 1 ) ĊĠĠĠ Ġval ĠSE COND _ ITER ATION _ MULTI PLI ERS Ġ= ĠarrayOf ( 3 , Ġ 4 , Ġ 5 , Ġ 6 , Ġ 7 , Ġ 8 , Ġ 9 , Ġ 1 , Ġ 2 , Ġ 3 ) Ċ }