)gSdZddlmZddlmZmZmZmZmZmZm Z m Z ddlm Z m Z ddlTddlTddlTddlTddlTddlmZddlmZddlmZmZmZdd lmZdd lmZed ge d d gde ddgde ddgde ddgde ddgde ddgde ddgde ddgde ddgde d d!gde d"d#gde d$d%gde d&d'gde d(d)gde d*d+gde d,d-gde d.d/gde d0d1gde d0d2gde d3d4gde d5d6gde d7d8d9ge d:d;d9ge dd?d9ge d@dAgde dBdCgde dDdEgde dFdGd9ge dHdIgde dJdKd9ge dLdMgde dNdOdPdQge dRdSdPdQge d,d-dPdQge d.d/dPdQge dTdUdPdQge dVdWdPdQge dXdYdPdQge dZd[d\d]gZ!ee"d^d_d-d`d8aZ#Gdbdce$ddeZ%Gdfdge$dheZ&Gdidje$dkeZ'Gdldme$dneZ(Gdodpe$d4eZ)Gdqdre$ddeZ*Gdsdte$dheZ+Gdudve$dkeZ,Gdwdxe$dneZ-Gdydze$d4eZ.Gd{d|e$d}eZ/Gd~de$deZ0Gdde$deZ1Gdde$d1eZ2Gdde$d2eZ3Gdde$dMeZ4Gdde$deZ5Gdde$d;eZ6Gdde$deZ7Gdde$de*e+e,e-e.e/e0e1e2e4e5e6e7g Z8Gdde$deZ9Gdde$deZ:Gdde$deZ;Gdde$d1eZ<Gdde$deZ=Gdde$deZ>Gdde$deZ?Gdde$dneZ@Gdde$de>e?e@gZAGdde$de%e&e'e(e)e8e9e:e;e This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . )bidict)SelectConstBitStructInt16ub FlagsEnum GreedyStringValidationError)OptionalComputed)*) CardProfile) iso7816_4)AddonSIMEF_ICCIDEF_PL) AddonGSMR) AddonRUIMz TS 102 22xSELECT)0X4X6XSTATUS)8XCXEXz READ BINARYz UPDATE BINARYz READ RECORDz UPDATE RECORDz SEARCH RECORDINCREASE2z RETRIEVE DATAzSET DATAz VERIFY PIN z CHANGE PIN$z DISABLE PIN&z ENABLE PIN(z UNBLOCK PIN,zDEACTIVATE FILEz ACTIVATE FILED AUTHENTICATEz GET CHALLENGEzTERMINAL CAPABILITYzTERMINAL PROFILE80ENVELOPEFETCHzTERMINAL RESPONSEzMANAGE CHANNELpzMANAGE SECURE CHANNELsz TRANSACT DATAuz SUSPEND UICCvz GET IDENTITYxzEXCHANGE CAPABILITIESzz GET RESPONSEz CREATE FILErrz DELETE FILEz TERMINATE DFz TERMINATE EFzTERMINATE CARD USAGEz RESIZE FILErrabcdec&eZdZedZdS)FileSizerJminlenN__name__ __module__ __qualname__ GreedyInteger _construct>/home/jenkins/workspace/simtester-sanitize/pySim/ts_102_221.pyrSrSX a(((JJJr]rStagc&eZdZedZdS) TotalFileSizerJrTNrVr\r]r^rdrd\r_r]rdc"eZdZddddddddfddd d ddddfd ddd ddddfd dddddddfgZGddeZeeede de z deede dz de dz eede de z de e ddddz de e dddddz Zedez ed d!eez d"eez ZdS)#FileDescriptor82027921T working_efber_tlv) shareable file_type structureN)file_descriptor_byte record_len num_of_rec82027821df no_info_given82024121 transparent82054221006e05 linear_fixednceZdZdZdZdS)FileDescriptor.BerTlvAdapterc |dkrdSt)N9rjr selfobjcontextpaths r^_decodez$FileDescriptor.BerTlvAdapter._decodehsd{{ y! !r]c |dkrdSt)Nrjr}r~rs r^_encodez$FileDescriptor.BerTlvAdapter._encodelsit! !r]NrWrXrYrrr\r]r^ BerTlvAdapterr{gs2 " " " " " " " "r]rrrkrmr}rlrI)ri internal_efrrrJ)rsrurwcyclicrn!rorp)rWrXrY_test_de_encodeAdapterrr BitStructrrFlag BitsIntegerr EnumFDBr COptionalrInt8ubr[r\r]r^rgrg`sZ tR^mv0x0xIM]acc e tRVet0v0vGK[_aa b tR^mz0|0|MQaegg i TXdtB7D7DTWghjj l O """""""" &55C==+d*:K V[V[\`bmbmnobpbpVqVqHrHr(EE!HH)=)==?QRX?XYYJJJr]rcdeZdZGddeZeeedZdS)ShortFileIdentifierceZdZdZdZdS)"ShortFileIdentifier.Shift3RAdapterc>t|ddz S)Nbigr)int from_bytesrs r^rz*ShortFileIdentifier.Shift3RAdapter._decodes>>#u--2 2r]cRt|dz}|ddS)NrrIr)rto_bytes)rrrrvals r^rz*ShortFileIdentifier.Shift3RAdapter._encodes%c((a-C<<5)) )r]Nrr\r]r^Shift3RAdapterrs2 3 3 3 * * * * *r]rrIN)rWrXrYrrrrr[r\r]r^rrs[******** >>%%((3344JJJr]rc&eZdZdgZdefdZdZdS)LifeCycleStatusInteger)8a0105operational_activateddoct|d}|dkrd}n8|dkrd}n/|dkrd}n&|dzdkrd }n|dzd krd }n|d zd krd }n|}||_|jS)Nrrno_informationrIcreationrinitializationryrr.operational_deactivatedrB termination)rrdecoded)rrlcsirets r^ _from_bytesz"LifeCycleStatusInteger._from_bytess~~b%(( 4<<"CC T\\CC T\\"CC D[D )CC D[D +CC D[D CCC |r]c|jdkrdS|jdkrdS|jdkrdS|jdkrdS|jd krd S|jd krd St|jtr|jd dSt)Nrrrrrr rIr)r isinstancerr ValueError)rs r^ _to_bytesz LifeCycleStatusInteger._to_bytess <+ + +7 <: % %7 <+ + +7 <2 2 27 <4 4 47 <= ( (7 dlC ( ( 3<((E22 2r]N)rWrXrYrbytesr rr\r]r^rrsH-Oe$r]rceZdZeZdS)PS_DONrr\r]r^rrrr]rceZdZeZdS)UsageQualifier_DONrr\r]r^rrrr]rceZdZeZdS) KeyReferenceN)rWrXrYrr[r\r]r^rrsJJJr]rceZdZdS)PinStatusTemplate_DONrr\r]r^r!r!sDr]r!ceZdZdS) FcpTemplateNrr\r]r^r$r$s  Dr]r$bcNdfd|DS)Nc||vr||S|SNr\)inmapkeys r^newkeyztlv_key_replace..newkey%s %<<: Jr]cBi|]}|d|dSrrIr\).0rPr)r+s r^ z#tlv_key_replace..*s/ > > >!FF5!A$  1 > > >r]items)r)indatar+s` @r^tlv_key_replacer3$s: ? > > > >v||~~ > > >>r]cNdfd|DS)Nc0||vr|||S|Sr(r\)r)r*rs r^newvalz!tlv_val_interpret..newval.s" %<<5:c?? "Jr]c Pi|]"}|d|d|d#Sr-r\)r.rPr)r6s r^r/z%tlv_val_interpret..3s5 D D DAaD&&!ad++ D D Dr]r0)r)r2r6s` @r^tlv_val_interpretr8-s; E D D D DV\\^^ D D DDr]c:eZdZedez dez dez ZdS)TerminalPowerSupplyused_supply_voltage_classmaximum_available_power_supplyactual_used_freq_100kNrr\r]r^r:r:6s834HH8?/688JJJr]r:ceZdZeZdS)ExtendedLchanTerminalSupportNrr\r]r^r?r?<rr]r?c(eZdZeedZdS)AdditionalInterfacesSupportrI)uicc_clfNrWrXrYr rr[r\r]r^rArA@s"6D111JJJr]rAc 6eZdZeedddddddd Zd S) AdditionalTermCapEuiccrIrJr.rKr5r)rr`)lui_dlpd_dlds_d lui_e_scwsmetadata_update_alertingenterprise_capable_device lui_e_e4elprNrCr\r]r^rErEDs;6TRV4859%)# %%%JJJr]rEceZdZdS)TerminalCapabilityNrr\r]r^rOrOLsDr]rOc0eZdZfdZdefdZdZxZS) _AM_DO_DFcPtddddSN access_modez Access Moder`rasuper__init__r __class__s r^rXz_AM_DO_DF.__init__R(  4@@@@@r]rcg}t|dkrtd|d}|dzdkrh|dzr|d|dzr|d|d zr|d |d zr|d |d zr|d|dzr|d|dzr|d||_dS)NrI,We only support single-byte AMF inside AM-DOrr`r delete_filer) terminate_dfr5 activate_filerKdeactivate_filer.create_file_dfrJcreate_file_efdelete_file_childlenrappendrrrresamfs r^rz_AM_DO_DF.from_bytesUs r77a<<KLL Le :??Tz * =)))Tz + >***Tz , ?+++Tz . ,--- : ) JJ' ( ( ( : ) JJ' ( ( ( : , JJ* + + + r]cd}d|jvr|dz}d|jvr|dz}d|jvr|dz}d|jvr|d z}d |jvr|d z}d |jvr|d z}d|jvr|dz}|ddS)Nrr^rr_r)r`r5rarKrbr.rcrJrdrIrrrrrs r^rz_AM_DO_DF.to_bytesls DL ( ( 4KC T\ ) ) 4KC dl * * 4KC  , , 4KC t| + + 4KC t| + + 4KC $, . . 4KC||Au%%%r]rWrXrYrXrrr __classcell__rZs@r^rRrRQsgAAAAAU.&&&&&&&r]rRc4eZdZdZfdZdefdZdZxZS) _AM_DO_EFz+ISO7816-4 9.3.2 Table 18 + 9.3.3.1 Table 31cPtddddSrTrVrYs r^rXz_AM_DO_EF.__init__r[r]rcg}t|dkrtd|d}|dzdkrh|dzr|d|dzr|d|d zr|d |d zr|d |d zr|d|dzr|d|dzr|d||_dS)NrIr]rr`rr^r) terminate_efr5activate_file_or_recordrKdeactivate_file_or_recordr. write_appendrJ update_eraseread_search_comparererhs r^rz_AM_DO_EF.from_bytess r77a<<KLL Le :??Tz * =)))Tz + >***Tz 6 4555Tz 8 6777 : ' JJ~ & & & : ' JJ~ & & & : . JJ, - - - r]cd}d|jvr|dz}d|jvr|dz}d|jvr|dz}d|jvr|d z}d |jvr|d z}d |jvr|d z}d|jvr|dz}|ddS)Nrr^rrur)rvr5rwrKrxr.ryrJrzrIrrlrms r^rz_AM_DO_EF.to_bytess DL ( ( 4KC T\ ) ) 4KC $ 4 4 4KC &$, 6 6 4KC T\ ) ) 4KC T\ ) ) 4KC DL 0 0 4KC||Au%%%r] rWrXrY__doc__rXrrrrorps@r^rrrrsm55AAAAAU.&&&&&&&r]rrc:eZdZdZfdZdefdZdZdZxZ S) _AM_DO_CHDRz?Command Header Access Mode DO according to ISO 7816-4 Table 32.cPtdd|dS)Ncommand_headerzCommand Header DescriptionrarVrrbrZs r^rXz_AM_DO_CHDR.__init__s* )+GSQQQQQr]rci}d}|jdzr|||d<|dz }|jdzr|||d<|dz }|jdzr|||d<|dz }|jdzr|||d <|dz }||_dS) NrrKCLArIr.INSrJP1P2)rbr)rrriis r^rz_AM_DO_CHDR.from_bytess  8d? ACJ FA 8d? ACJ FA 8d? 1CI FA 8d? 1CI FA r]czd}d|jvr|dz}d|jvr|dz}d|jvr|dz}d|jvr|d z}|S) z7Override to encode the tag, as it depends on the value.r`rrKrr.rrJrrIr)rrbs r^ _compute_tagz_AM_DO_CHDR._compute_tagsd DL 4KC DL 4KC 4<   4KC 4<   4KC r]cjt}d|jvr ||jdd|jvr ||jdd|jvr ||jdd|jvr ||jd|S)Nrrrr) bytearrayrrg)rris r^rz_AM_DO_CHDR.to_bytesskk DL JJt|E* + + + DL JJt|E* + + + 4<   JJt|D) * * * 4<   JJt|D) * * * r]) rWrXrYr}rXrrrrrorps@r^rrs|IIRRRRRU"          r]r am_do_chdr)membersPIN1PIN2rPIN3PIN4ryPIN5rPIN6rPIN7PIN8 ADM1 ADM2 ADM3 ADM4ADM5 UNIVERSAL_PIN2PIN12PIN22PIN32PIN42PIN52PIN62PIN72PIN8ADM6ADM7ADM8ADM9ADM10) r3rrrr1rrrrrc4eZdZdZfdZdefdZdZxZS)CRT_DOz2Control Reference Template as per TS 102 221 9.5.1cPtddddS)Ncontrol_reference_templatezControl Reference TemplaterrarVrYs r^rXzCRT_DO.__init__s; 554  A A A A Ar]rcBt|dkrtd|z|ddks |ddkrtd|z|ddd krtd |z|dd|_t|d |_|ddS) z'Decode a Control Reference Template DO.rzUnsupported CRT DO length: %srrrIz+Unsupported Key Ref Tag or Len in CRT DO %srNz3Unsupported Usage Qualifier Tag or Len in CRT DO %srJ)rfrencoded pin_namesr)rrs r^rzCRT_DO.from_bytess r77a<<eZdZdZfdZdedefdZdefdZxZ S) Nested_DOz*A DO that nests another DO/Choice/Sequencec\t||||_dS)Nra)rWrXchildren)rnamerbchoicerZs r^rXzNested_DO.__init__`s+ 3''' r]rreturnc|}g|_|r9|j|\}}|j||9|jSr()rrdecoderg)rr remainderrcs r^rzNested_DO.from_bytesdsY   $ M00;;MB L   # # # $|r]cTfdjD}d|S)NcDg|]}j|Sr\)rencode)r.rPrs r^ z&Nested_DO.to_bytes..ms)AAAq4=''**AAAr]r])rjoin)rrs` r^rzNested_DO.to_bytesls0AAAADLAAAxx   r]) rWrXrYr}rXrlistrrrorps@r^rr]s{444!%!!!!!!!!r]r or_templatez OR-Templater and_templatez AND-Templater not_templatez NOT-Templatenotsecurity_conditionzSecurity Conditionc$eZdZdddediddidedigifd dded idd igifgZGd d edZGddedejeej ej ej ej ej ejgZdfd ZxZS)EF_DIRV61294f10a0000000871002ffffffff890709000050055553696d31730ea00c80011781025f608203454150application_templateapplication_id a0000000871002ffffffff8907090000application_labelUSim1discretionary_templatea00c80011781025f608203454150661194f10a0000000871004ffffffff890709000050054953696d31 a0000000871004ffffffff8907090000ISim1c$eZdZedZdS)EF_DIR.ApplicationLabelasciiN)rWrXrYr r[r\r]r^ApplicationLabelrs!\'** r]rPraceZdZdS)EF_DIR.ApplicationTemplateNrr\r]r^ApplicationTemplaters r]rar2f00EF.DIRApplication Directorycvt||||dtj|_dS)N)ry6)sfidrdescrec_len)rWrXrr_tlvrfidr rrrZs r^rXzEF_DIR.__init__s4 4dwOOO. r])rrr r )rWrXrYh2br BER_TLV_IErr ApplicationId FileReference CommandApduDiscretionaryDataDiscretionaryTemplateURLApplicationRelatedDOSetrrXrorps@r^rrsP b "(8##>`:a:a&c(;W&F(@##FdBeBe&g%j l C "(8##>`:a:a&c(;W&F%I K O+++++:4++++      jd&/&=?OQZQh&/&;Y=X&/&Ey}&/&G&I    //////////r]rc eZdZdddgiddigdddgidd igdd d gid d igd ddiiddiggfdddgidd igddgid d igdddgiddigd ddiiddiggfgZdfd ZedefdZdZdZ e dGdde Z xZ S) EF_ARR@800101a40683010a950108800106900080016097008401d4a40683010a950108rUrzrrrxryrNr^rurrrrH@80010190008001029700800118a40683010a9501088401d4a40683010a950108rvrw2f06rEF.ARRAccess Rule Referencect|||||xj|gz c_dS)N)r rr)rWrXshell_commandsAddlShellCommandsrs r^rXzEF_ARR.__init__sM 4d>>>  6 6 8 899r]inpcd}i}|D]}|d}|d}||}d|vr|dD]}|||<2d|vr|dd}d|dvr|dd} nd} t|| } | r3| jd d } ||| <t t |S) zDFlatten the somewhat deep/complex/nested data returned from decoder.c6d|vrdSd|vrdSd|vr|dS|S)Nrrrr\)scs r^ sc_abbreviatez%EF_ARR.flatten..sc_abbreviates:2~~xBw-33677 r]rrIrUrrrN _)ts_102_22x_cmdsetlookuprlowerreplacer) r&r*by_modetamr)sc_abbrminsclacmdrs r^flattenzEF_ARR.flattens    ! !A1B1B#mB''G""M*))A!(GAJJ)!R'')*51B/000-.u5CCC'..sC88%8>>++33C==D$+GDMM$$  r]c vtdttg}||}|dS)Narrsequencer)DataObjectSequenceAM_DO_EFSC_DO decode_multi)r raw_bin_datakwargsarr_seqdecs r^_decode_record_binzEF_ARR._decode_record_bins7$Uh5FGGG""<001v r]c ftdttg}||S)Nr;r<)r>r?r@ encode_multi)rin_jsonrCrDs r^_encode_record_binzEF_ARR._encode_record_bins-$Uh5FGGG##G,,,r]zFile-Specific CommandsceZdZeejjdZeejj dZ dS)EF_ARR.AddlShellCommandsc|jj|j\}}|jjj|}|j||jdS)z9Read one EF.ARR record in flattened, human-friendly form.N)_cmdlchanread_record_dec record_nr selected_filer9 poutput_jsononeline)roptsdata_sws r^do_read_arr_recordz+EF_ARR.AddlShellCommands.do_read_arr_records[)/99$.IIKT39?088>>D I " "4 6 6 6 6 6r]ch|jj}g}tdd|zD]]}|jj|\}}|jjj|}||^|j||j dS)zCRead + decode all EF.ARR records in flattened, human-friendly form.rIN) rNrOselected_file_num_of_recrangerPrRr9rgrSrT)rrUrp data_listrecnrrVrWs r^do_read_arr_recordsz,EF_ARR.AddlShellCommands.do_read_arr_recordssAACCJIq!j.11 ' '"io==eDD sy4<W $ $A0(*1773 ! !JDAB ##{C C J $54"(e*.*@*@*B*B)Cf  V V V V Vr]data_hexrct}|t||}t |dS)z ETSI TS 102 221 Section 11.1.1.3 fcp_template)r$from_tlvrto_dictflatten_dict_lists)rr2rPs r^decode_select_responsez&CardProfileUICC.decode_select_responsemsE MM 3x==!!! IIKK!!N"3444r]sccNc8||dddgdS)zn Try to access MF via UICC APDUs (3GPP TS 102.221), if this works, the card is considered a UICC card.rr3f00N)_mf_select_test)clsrs r^_try_match_cardzCardProfileUICC._try_match_cardus& Cvx88888r]zTS 102 221 Specific CommandsceZdZeZededdededde edZ eZ e d e d e e d Z eZed Zede gddeded eded edZedddedZedddedZeddded dd!ed"dd#ed$dd%ed&dd'ed(dd)ed*dd+ed,dd-e ed.Zd/efd0Zd1S)2!CardProfileUICC.AddlShellCommandsz--min-duration-secsrkz'Proposed minimum duration of suspension)typedefaulthelpz--max-duration-secsiQz'Proposed maximum duration of suspensionc|jjj|j|j\}}}|jd|||fzdS)zNPerform the SUSPEND UICC command. Only supported on some UICC (check EF.UMPC).) min_len_secs max_len_secsz/Negotiated Duration: %u secs, Token: %s, SW: %sN)rNcard_scc suspend_uiccmin_duration_secsmax_duration_secspoutput)rrUdurationtokenrs r^do_suspend_uiccz1CardProfileUICC.AddlShellCommands.do_suspend_uiccst%)IN$7$D$DRVRhRVRh%E%j%j !Xub I  AXuVXDYY [ [ [ [ [r]TOKENzToken provided during SUSPEND)rrcX|jjj|jdS)aPerform the REUSME UICC operation. Only supported on some UICC. Also: A power-cycle of the card is required between SUSPEND and RESUME, and only very few non-RESUME commands are permitted between SUSPEND and RESUME. See TS 102 221 Section 11.1.22.N)rNrr resume_uiccr)rrUs r^do_resume_uiccz0CardProfileUICC.AddlShellCommands.do_resume_uiccs' IN  + +DJ 7 7 7 7 7r]zTerminal Power Supplyz--used-supply-voltage-classrLz Actual used Supply voltage class)rchoicesrz --maximum-available-power-supplyz.Maximum available power supply of the terminalz--actual-used-freq-100kz0Actual used clock frequency (in units of 100kHz)z*Extended logical channels terminal supportz--extended-logical-channel store_truez"Extended Logical Channel supported)actionrzAdditional interfaces supportz --uicc-clfz3Local User Interface in the Device (LUId) supportedz;Additional Terminal capability indications related to eUICCz--lui-dz--lpd-dz5Local Profile Download in the Device (LPDd) supportedz--lds-dz6Local Discovery Service in the Device (LPDd) supportedz --lui-e-scwszLUIe based on SCWS supportedz--metadata-update-alertingz"Metadata update alerting supportedz--enterprise-capable-devicezEnterprise Capable Devicez --lui-e-e4ez*LUIe using E4E (ENVELOPE tag E4) supportedz--lprzLPR (LPA Proxy) supportedc i}i}i}t| gd}t fd|Dr5t fd|Dstd D]\}}|t jj vr|||<0|tjj vr|||<[|dtjj Dvr|dkr|r|di}|||<g}td| Dr#|t| |jr!|t!td | Dr#|t | td | Dr#|t| t#|t%| } |t)| d S)z\Perform the TERMINAL CAPABILITY function. Used to inform the UICC about terminal capability.)r;r<r=c3(K|] }|V dSr(r\r.x opts_dicts r^ zKCardProfileUICC.AddlShellCommands.do_terminal_capability..s'55A9Q<555555r]c3(K|] }|V dSr(r\rs r^rzKCardProfileUICC.AddlShellCommands.do_terminal_capability..s'==A9Q<======r]zQIf any of the Terminal Power Supply group options are used, all must be specifiedcg|] }|j Sr\)r)r.fs r^rzLCardProfileUICC.AddlShellCommands.do_terminal_capability..sRRRa16RRRr]r;Tc3K|]}|VdSr(r\r.rs r^rzKCardProfileUICC.AddlShellCommands.do_terminal_capability..s"001000000r]rc3K|]}|VdSr(r\rs r^rzKCardProfileUICC.AddlShellCommands.do_terminal_capability..s"551555555r]c3K|]}|VdSr(r\rs r^rzKCardProfileUICC.AddlShellCommands.do_terminal_capability..s"331333333r])rN)varsanyallargparseArgumentTypeErrorr1rAr[flagskeysrEr:subconsvaluesrgextended_logical_channelr?printrOrb2hto_tlv) rrUps_flags addl_if_flags euicc_flags power_itemskv child_listtcrs @r^do_terminal_capabilityz8CardProfileUICC.AddlShellCommands.do_terminal_capabilitysHMKT IrrrK555555555 J=========J"446IJJJ!)) $ $13>DIIKKKK'(M!$$0;AFFHHHH%&KNNRR+>+I+QRRRRR777A7I"#HQKJ00hoo//00000 I!!"5h"G"G"GHHH, B!!">"@"@AAA55m224455555 V!!"=m"T"T"TUUU33k002233333 O!!"8"M"M"MNNN *   #Z888B  $ $S%5%5 6 6 6 6 6r]rVcdt|dz|fz}|jjj|\}}dS)Nz80AA0000%02x%srJ)rfrNrOrsend_apdu_checksw)rrVcmd_hex_rsp_hexrWs r^rz5CardProfileUICC.AddlShellCommands.terminal_capabilitys=&#d))Q,)==G IO/AA'JJMHcccr]N)rWrXrYrArgumentParsersuspend_uicc_parser add_argumentrr_r`rresume_uicc_parserstrrterm_cap_parseradd_argument_group tc_power_grp auto_uint8 tc_elc_grp tc_aif_grp tc_euicc_grprHexstrrr\r]r^r%r{s&5577(()>SRT.W ) Y Y Y(()>SRZ.W ) Y Y Y   0 1 1 [ [ 2 1 [&4466''c@_'```  / 0 0 8 8 1 0 8 #1133&99:QRR !!"?cShShSh'I " K K K!!"D:'W " Y Y Y!!";*'Y " [ [ [%778dee  <\%I  K K K$778WXX  \%Z  \ \ \'99:wxx !!)L'\ " ^ ^ ^!!)L'^ " ` ` `!!)L'_ " a a a!!.'E " G G G!!">|'K " M M M!!"? 'B " D D D!!- 'S " U U U!!','B " D D D   _ - -$ 7$ 7 . -$ 7L K6 K K K K K Kr]r%)rz)rWrXrYORDERrXrerobjectr classmethodSimCardCommandsrrfrgr%rorps@r^ryrys EUVUVUVUVUVUVn55555\59/9d999[9 9::fKfKfKfKfKJfKfK;:fKfKfKfKfKr]ryN)fr}r constructrrrrrr r r r rr osmocom.construct osmocom.utils osmocom.tlv pySim.utilspySim.filesystem pySim.profilerpySimrpySim.ts_51_011rrr pySim.gsm_rrpySim.cdma_ruimrCardCommandSet CardCommandr-rrrrSrdrgrrrrrrrrrrrrrrrrrrrrrrrrrr!r$r3r8r:r?rArErO DataObjectrRrrrDataObjectChoice AM_DO_CHDRAM_DO_DFr?rrrTL0_DataObject Always_DONever_DOr OR_TemplateOR_DO AND_TemplateAND_DO NOT_TemplateNOT_DOr@rarr TransparentEFriryr\r]r^r.s"cccccccccccccccccccc55555555%%%%%%6555555555!!!!!!%%%%%%"N<+2KD2D2D2DEE+2KD2D2D2DEE+2K D2D2D2DEE +2 KD2D2D2DEE +2 K D2D2D2DEE +2KD2D2D2DEE+2KD2D2D2DEE+2K D2D2D2DEE+2KD2D2D2DEE+2K D2D2D2DEE+2K D2D2D2DEE+2K D2D2D2DEE+2K D2D2D2DEE+2K D2D2D2DEE+2 K D2D2D2DEE!+2"K!D2D2D2DEE#+2$KD2D2D2DEE%+2&KD2D2D2DEE'+2(KD2D2D2DEE)+2*KD2D2D2DEE++2,K%D2D2D2DEE-+2.K"D4&99/+20K D4&991+22KD4&993+24K#D4&995+26K D2D2D2DEE7+28K'D2D2D2DEE9+2:KD2D2D2DEE;+2<KD4&99=+2>KD2D2D2DEE?+2@K'D4&99A+2BKD2D2D2DEEC+2FK D4,??G+2HK D4,??I+2JK!D4,??K+2LKD4,??M+2NKD4,??O+2PKD4,??Q+2RK&D4,??S+2TK D4,??U+2++^!y3#tLLL)))))zt)))))))))JD))))YYYYYZTYYYY2)))))ZT)))))))))ZT))))*$66666*$6666 :4!!!!!jd!!!!44444*$4444!!!!!zt!!!!!!!!!jd!!!!88888*$8888rrrrr rrrr jdjjjjjjdjjjjZTJD<<<<    JDZTZZZZZztZZZZ 5 5 5 5 5*$ 5 5 5 5%%%%%ZT%%%%PJD :4     :4@QS_8`         *$-Yg068NPe0FH`0CE[0D 0F    ???EEE88888*$8888 :422222*$2222%%%%%ZT%%%%     7JLh7RTj7l    +&+&+&+&+& +&+&+&\-&-&-&-&-& -&-&-&`.....*...b lK{{4((++d*;*;[[=N=NK{{4((++d*;*;[[=N=NK{{4((++d*;*;[[=N=NK{{4((++d*;*; 5=>>>  #  # F&& & &   &   &  & & & & & & & /  '!" '#$ '%&          9   @FFFFFZFFF03&3&3&3&3&Z3&3&3&l N8Xt 4 4 >'7D 1 1!!!!! !!!(}m(18^^=M=M~~^bOcOcekekemem'nppp  $k**)2Hnn>N>NP^P^_cPdPdflflfnfn(oqqq 5$ - -)2Hnn>N>NP^P^_cPdPdflflfnfn(oqqq 5$ - --/C"+X~~7G7GX\I]I]_e_e_g_g"'"9 : : : /////Z///>a<a<a<a<a