package Ġw tf . log . x mas 2 0 2 1 . util . math Ċ Ċ /** Ċ Ġ* ĠReturns Ġdigits Ġof Ġthe Ġreceiver Ġ( using Ġ[ radix ]) Ġin Ġlittle - endian Ġ( ascending Ġorder ). Ċ Ġ*/ Ċ fun ĠLong . digits ( radix : ĠLong Ġ= Ġ 1 0 ): ĠSequence < Long > Ġ= Ġsequence Ġ{ ĊĠĠĠ Ġvar Ġvalue Ġ= Ġthis @ digits ĊĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠ Ġyield ( value Ġ% Ġradix ) ĊĠĠĠĠĠĠĠ Ġvalue Ġ/= Ġradix ĊĠĠĠ Ġ} Ġwhile Ġ( value Ġ!= Ġ 0 L ) Ċ } Ċ Ċ fun ĠCollection < Boolean >. toInt (): ĠInt Ġ{ ĊĠĠĠ Ġval ĠstartIndex Ġ= ĠindexOf First Ġ{ Ġit Ġ} ĊĠĠĠ Ġif Ġ( startIndex Ġ== Ġ- 1 ) Ġreturn Ġ 0 ĊĠĠĠ Ġval Ġbit Count Ġ= Ġsize Ġ- ĠstartIndex ĊĠĠĠ Ġrequire ( bit Count Ġ<= Ġ 3 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" Too Ġlarge Ġ($ size ) Ġfor Ġan ĠInt : Ġ${ join ToString ("") Ġ{ Ġif Ġ( it ) Ġ" 1 " Ġelse Ġ" 0 " Ġ}}" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġiterator Ġ= Ġiterator () ĊĠĠĠ Ġrepeat ( startIndex ) Ġ{ ĊĠĠĠĠĠĠĠ Ġiterator . next () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġresult Ġ= Ġ 0 ĊĠĠĠ Ġwhile Ġ( iterator . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ( result Ġshl Ġ 1 ) Ġor Ġiterator . next (). toInt () ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ fun ĠCollection < Boolean >. to Long (): ĠLong Ġ{ ĊĠĠĠ Ġval ĠstartIndex Ġ= ĠindexOf First Ġ{ Ġit Ġ} ĊĠĠĠ Ġif Ġ( startIndex Ġ== Ġ- 1 ) Ġreturn Ġ 0 ĊĠĠĠ Ġval Ġbit Count Ġ= Ġsize Ġ- ĠstartIndex ĊĠĠĠ Ġrequire ( bit Count Ġ<= Ġ 6 4 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" Too Ġlarge Ġ($ size ) Ġfor Ġa ĠLong : Ġ${ join ToString ("") Ġ{ Ġif Ġ( it ) Ġ" 1 " Ġelse Ġ" 0 " Ġ}}" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġiterator Ġ= Ġiterator () ĊĠĠĠ Ġrepeat ( startIndex ) Ġ{ ĊĠĠĠĠĠĠĠ Ġiterator . next () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġresult Ġ= Ġ 0 L ĊĠĠĠ Ġwhile Ġ( iterator . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġ( result Ġshl Ġ 1 ) Ġor Ġiterator . next (). to Long () ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ } Ċ Ċ fun ĠBoolean . toInt (): ĠInt Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġtrue Ġ-> Ġ 1 ĊĠĠĠ Ġelse Ġ-> Ġ 0 Ċ } Ċ Ċ fun ĠBoolean . to Long (): ĠLong Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġtrue Ġ-> Ġ 1 L ĊĠĠĠ Ġelse Ġ-> Ġ 0 L Ċ } Ċ Ċ fun ĠInt . to Bits (): ĠList < Boolean > Ġ= ĠList ( 3 2 ) Ġ{ Ġindex Ġ-> ĊĠĠĠ Ġ(( this Ġshr Ġ( 3 1 Ġ- Ġindex )) Ġand Ġ 0 x 1 ) Ġ== Ġ 1 Ċ } Ċ