package Ġcom . github . ni uh f 0 4 5 2 . ex ile . common Ċ Ċ @ Public Api Ċ object ĠBytes Ġ{ ĊĠĠĠ Ġprivate Ġval Ġhex Table Ġ= ĠChar Array ( 1 6 ) Ġ{ Ġi Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( i Ġ< Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ' 0 ' Ġ+ Ġi ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ' a ' Ġ+ Ġ( i Ġ- Ġ 1 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Hex ( bytes : ĠByteArray ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġbytes . forEach Ġ{ Ġb Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġb . toInt () Ġand Ġ 0 xff ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( hex Table [ i Ġshr Ġ 4 ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( hex Table [ i Ġand Ġ 0 x 0 f ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsb . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfrom Hex ( value : ĠString ): ĠByteArray Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( value . length Ġ% Ġ 2 Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġs Ġ= Ġvalue . toLowerCase () ĊĠĠĠĠĠĠĠ Ġreturn ĠByteArray ( value . length Ġ/ Ġ 2 ) Ġ{ Ġi Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġj Ġ= Ġi Ġ* Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ(( get Digit ( s [ j ]) Ġshl Ġ 4 ) Ġ+ Ġget Digit ( s [ j Ġ+ Ġ 1 ])). to Byte () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Digit ( c : ĠChar ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( c ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Ġ' 0 ' .. ' 9 ' Ġ-> Ġc Ġ- Ġ' 0 ' ĊĠĠĠĠĠĠĠĠĠĠĠ Ġin Ġ' a ' .. ' f ' Ġ-> Ġc Ġ- Ġ' a ' Ġ+ Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }