package Ġcom . github . che er iot b . u ic cb rowser Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . app . Activity Compat Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . github . che er iot b . u ic cb rowser . element . f cp . F cp Template Ċ import Ġcom . github . che er iot b . u ic cb rowser . repository . Card Repository Ċ import Ġcom . github . che er iot b . u ic cb rowser . repository . File Id Ċ import Ġcom . github . che er iot b . u ic cb rowser . repository . ReadAll Records Params Ċ import Ġcom . github . che er iot b . u ic cb rowser . repository . Read Binary Params Ċ import Ġcom . github . che er iot b . u ic cb rowser . util . byteArray To HexString Ċ import Ġcom . github . che er iot b . u ic cb rowser . util . hex StringTo ByteArray Ċ import Ġkotlinx . coroutines . run Blocking Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Context Compat . check Self Permission ( this , ĠManifest . permission . READ _ PHONE _ STATE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Activity Compat . should Show Request Permission R ationale ( this , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . READ _ PHONE _ STATE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġ" The Ġpermission Ġwas Ġnot Ġgranted ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( this , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( Manifest . permission . READ _ PHONE _ STATE ), Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġexecute () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( ĊĠĠĠĠĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠĠĠĠĠ Ġpermissions : ĠArray < out ĠString >, ĊĠĠĠĠĠĠĠ Ġgrant Results : ĠInt Array ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( grant Results . isNotEmpty () Ġ&& Ġgrant Results [ 0 ] Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsuper . on Request Permissions Result ( request Code , Ġpermissions , Ġgrant Results ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġexecute () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĠCard Repository . from ( this , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġrun Blocking Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf cp For Mf Ġ= ĠF cp Template . decode ( resources , Ġhex StringTo ByteArray (" 6 2 3 0 8 2 0 2 7 8 2 1 8 3 0 2 3 F 0 0 A 5 0 C 8 0 0 1 6 1 8 7 0 1 0 1 8 3 0 4 0 0 0 8 A 5 A 0 8 A 0 1 0 5 8 B 0 6 2 F 0 6 0 1 0 2 0 0 0 0 C 6 0 9 9 0 0 1 4 0 8 3 0 1 0 1 8 3 0 1 0 A 8 1 0 2 FFFF ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub Elements 4 For Mf Ġ= Ġf cp For Mf !!. sub Elements [ 4 ]. sub Elements ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub Elements 5 For Mf Ġ= Ġf cp For Mf !!. sub Elements [ 5 ]. sub Elements ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf cp For Dir Ġ= ĠF cp Template . decode ( resources , Ġhex StringTo ByteArray (" 6 2 2 6 8 2 0 5 4 2 2 1 0 0 1 D 0 2 8 3 0 2 2 F 0 0 A 5 0 3 C 0 0 1 4 0 8 A 0 1 0 5 8 B 0 6 2 F 0 6 0 1 0 4 0 0 0 0 8 0 0 2 0 0 3 A 8 1 0 2 0 0 4 E 8 8 0 1 F 0 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub Elements 0 For Dir Ġ= Ġf cp For Dir !!. sub Elements [ 0 ]. sub Elements ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub Elements 4 For Dir Ġ= Ġf cp For Dir !!. sub Elements [ 4 ]. sub Elements ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository !!. initialize () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . cache File Control Parameters ( File Id ( file Id Ġ= Ġ" 3 F 0 0 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . cache File Control Parameters ( File Id ( file Id Ġ= Ġ" 2 F 0 5 ")) Ċ /* ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . cache File Control Parameters ( File Id ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" A 0 0 0 0 0 0 0 8 7 1 0 0 2 FFFFFFFF 8 9 0 7 0 9 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 7 FFF ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 5 F 3 B " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . cache File Control Parameters ( File Id ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" A 0 0 0 0 0 0 0 8 7 1 0 0 2 FFFFFFFF 8 9 0 7 0 9 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 7 FFF 5 F 3 B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 4 F 2 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . cache File Control Parameters ( File Id ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" A 0 0 0 0 0 0 0 8 7 1 0 0 2 FFFFFFFF 8 9 0 7 0 9 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 7 FFF 5 F 3 B ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 4 F 5 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist 0 Ġ= Ġrepository . query File Control Parameters ( File Id ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist 1 Ġ= Ġrepository . query File Control Parameters ( File Id ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" A 0 0 0 0 0 0 0 8 7 1 0 0 2 FFFFFFFF 8 9 0 7 0 9 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 7 FFF " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist 2 Ġ= Ġrepository . query File Control Parameters ( File Id ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" A 0 0 0 0 0 0 0 8 7 1 0 0 2 FFFFFFFF 8 9 0 7 0 9 0 0 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 7 FFF 5 F 3 B " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" U icc Browser ", Ġ"$ list 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" U icc Browser ", Ġ"$ list 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" U icc Browser ", Ġ"$ list 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġread Binary Params Ġ= ĠRead Binary Params . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Id . Builder (" A 0 0 0 0 0 0 0 8 7 1 0 0 2 FFFFFFFF 8 9 0 7 0 9 0 0 0 0 ", Ġ" 7 FFF ", Ġ" 6 F 4 6 "). build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . read Binary ( read Binary Params ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġread All Record Params Ġ= ĠRead All Records Params . Builder ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Id . Builder ( File Id . A ID _ NONE , ĠFile Id . PATH _ MF , Ġ" 2 F 0 0 "). build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. numberOf Records ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrecords Ġ= Ġrepository . read All Records ( read All Record Params ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" U icc Browser ", Ġ"# 1 Ġ: Ġ" Ġ+ ĠbyteArray To HexString ( records [ 0 ]. data ) Ġ+ Ġ" Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġrecords [ 0 ]. sw . toString ( 1 6 )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" U icc Browser ", Ġ"# 2 Ġ: Ġ" Ġ+ ĠbyteArray To HexString ( records [ 1 ]. data ) Ġ+ Ġ" Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġrecords [ 1 ]. sw . toString ( 1 6 )) Ċ */ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . dispose () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġb ( byte : ĠInt ) Ġ= Ġbyte . to Byte () Ċ } Ċ