i dZddlZddlmZmZddlmZddlmZ ddlTddl Tddl Tddl Tddl mZmZmZmZmZmZmZddl mZdd lmZmZddlTdd lmZmZmZmZdd lm Z id d ddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-id.d/d0d1d2dd3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNidOdPdQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdyZ!Gdzd{e"Z#Gd|d}e$Z%Gd~de$Z&Gdde$Z'Gdde$Z(Gdde)Z*Gdde$Z+Gdde$Z,Gdde$Z-Gdde.Z/Gdde0Z1Gdde)Z2Gdde0Z3Gdde)Z4Gdde)Z5Gdde)Z6Gdde0Z7Gdde)Z8Gdde)Z9Gdde)Z:Gdde0Z;Gdde)Z<Gdde)Z=Gdde)Z>Gdde7Z?Gdde0Z@Gdde0ZAGdde)ZBGdde0ZCGdde$ZDGdde)ZEGdde)ZFGdde0ZGGdde0ZHGdde)ZIGdde$ZJGd„de$ZKGdĄde$ZLGdƄde$ZMGdȄde$ZNGdʄde)ZOGd̄de$ZPGd΄deQdЬѦZRGd҄de)ZSGdԄde$ZTGdքde)ZUGd؄de)ZVGdڄde0ZWGd܄de.ZXGdބdeZYGddeZZdS)a Various constants from ETSI TS 151.011 + Representation of the GSM SIM/USIM/ISIM filesystem hierarchy. The File (and its derived classes) uses the classes of pySim.filesystem in order to describe the files specified in the relevant ETSI + 3GPP specifications. N)packunpack)Tuple)Optional)*) dec_iccid enc_icciddec_imsienc_imsidec_plmnenc_plmndec_xplmn_w_act)bytes_for_nibbles) CardProfileCardProfileAddon) DF_PHONEBOOK DF_MULTIMEDIADF_MCSDF_V2X) AddonGSMRzCHV1 disable functionz"Abbreviated Dialling Numbers (ADN)zFixed Dialling Numbers (FDN)zShort Message Storage (SMS)zAdvice of Charge (AoC)z)Capability Configuration Parameters (CCP) PLMN selectorRFU MSISDN Extension1 Extension2 zSMS Parameters zLast Number Dialled (LND)z!Cell Broadcast Message IdentifierGroup Identifier Level 1Group Identifier Level 2Service Provider NamezService Dialling Numbers (SDN) Extension3z/VGCS Group Identifier List (EFVGCS and EFVGCSS)z,VBS Group Identifier List (EFVBS and EFVBSS)z7enhanced Multi-Level Precedence and Pre-emption ServicezAutomatic Answer for eMLPPzData download via SMS-CBzData download via SMS-PPzMenu selectionz Call controlz Proactive SIMz(Cell Broadcast Message Identifier RangeszBarred Dialling Numbers (BDN) Extension4!zDe-personalization Control Keys"Co-operative Network List#zShort Message Status Reports$z*Network's indication of alerting in the MS%z.Mobile Originated Short Message control by SIM&GPRS'z Image (IMG)(z%SoLSA (Support of Local Service Area))z1USSD string data object supported in Call Control*zRUN AT COMMAND command+4User controlled PLMN Selector with Access Technology,8Operator controlled PLMN Selector with Access Technology-%HPLMN Selector with Access Technology.CPBCCH Information/zInvestigation Scan0,Extended Capability Configuration Parameters1MExE2zReserved and shall be ignored3PLMN Network NameOperator PLMN ListMailbox Dialling Numbers!Message Waiting Indication Status!Call Forwarding Indication Status$Service Provider Display Informationz"Multimedia Messaging Service (MMS)z Extension 8 MMS User Connectivity Parameters)456789:;ceZdZdZdZdZdS)ExtendedBcdAdapterz7Replace some hex-characters with other ASCII charactersct|ts|S|ddddS)Narb#) isinstancestrlowerreplaceselfobjcontextpaths =/home/jenkins/workspace/simtester-sanitize/pySim/ts_51_011.py_decodezExtendedBcdAdapter._decode{sG#s## Jyy{{""3s++33C<<<ct|ts|S|ddddS)Nrrnrpro)rqrrrtrus rz_encodezExtendedBcdAdapter._encodes=#s## J{{3s##++C444r|N)__name__ __module__ __qualname____doc__r{r~r|rzrlrlws8AA=== 55555r|rlc `eZdZddddddddd d d fd d d dddddd d d fgZdZdfd ZxZS)EF_ADN<42204841203120536963FFFFFFFFFFFF06810628560810FFFFFFFFFFFFFFz B HA 1 SicrTunknown isdn_e164exttype_of_numbernumbering_plan_id 6082658001)alpha_id len_of_bcdton_npi dialing_nr cap_conf_idext1_record_id<4B756E64656E626574726575756E67FF0791947112122721ffffffffffffKundenbetreuungr international 4917212172126f3aNEF.ADNAbbreviated Dialing Numbersrc tj|f|||dd|d|z}tdtt t t tjj dz z dtz dtz dttt t d z d tz |tz |_dS) N)r)r=sfidnamedescrec_lenext%u_record_idrr)rrrr#r)super__init__Struct COptionalGsmOrUcs2AdapterRpadBytesthis_ total_lenInt8ubTonNpirlPaddedBcdAdapter _construct rvfidrrrrkwargsext_name __class__s rzrzEF_ADN.__init__sZ4dxZZSYZZZ$s* I6FtERVRXRbceReLfLfGgGg6h6h,i,i!i!-f!4!*6!1!-.@AQRVW\]_W`W`RaRaAbAb.c.c!c!.v!5!)& 22r|)rNrrrrrr_test_de_encode _test_no_padr __classcell__rs@rzrrsL(tGPGRGUGUC3II J M,ARVKZ`kKmKm,CSVXX Z  OL2222222222r|rc&eZdZdfd ZdZxZS)EF_SMS6f3cNEF.SMSShort messagesc Ftj|f|||dd|dS)N)rrrrrvrrrrrrs rzrzEF_SMS.__init__s4\4dz\\U[\\\\\r|c |d}||d}|dd}|d|dt|dS)Nc|dzdkrdS|dzdkrdS|dzdkrdS|dzdkrdS|d zd krd S|d zd krd S|d zdkrdS|d zdkrdSdS)Nrr)N free_spacer)mt message_readr)rmessage_to_be_read)momessage_to_be_sentr>r)rsent_status_not_requestedr()r sent_status_req_but_not_receivedr4)r"sent_status_req_rx_not_stored_smsrr<)rsent_status_req_rx_stored_smsr)Nrfur)statuss rz decode_statusz0EF_SMS._decode_record_bin..decode_statuss}$$++$$&&--$$&&33$$&&33$$&&::$$&&AA$$&&CC$$&&??$}r|rr) directionr remainderb2h)rv raw_bin_datarrrrs rz_decode_record_binzEF_SMS._decode_record_binsR % % %(|A// $ #AY&)#i..YYYr|)rNrr)rrrrrrrs@rzrrsY]]]]]]ZZZZZZZr|rc eZdZddddddddd fd d d dd dddd fgZddgdifdddifgZdZdfd Zddededede ffd Z xZ S) EF_MSISDNDffffffffffffffffffffffffffffffffffffffff04b12143f5ffffffffffffffffffrTnetwork_specificrr12345rrrrD456967656e65205275666e756d6d6572ffffffff0891947172199181f3ffffffffffzEigene Rufnummerrr 4917279119183Dffffffffffffffffffffffffffffffffffffffff05b1716662f6ffffffffffffffffmsisdn)rr1766266Dffffffffffffffffffffffffffffffffffffffff06b121436587f9ffffffffffffff 1234567896f40N EF.MSISDNr"c tj|f|||ddd|tdtt t t tjj dz z dtz dtz dttt t d z td d |_dS) N)r*rBT)rrrrleftpadrr)rrrr#rpattern)rrrrrrrrrrrrrlrPaddingrrs rzrzEF_MSISDN.__init__sh4dxY]hhaghhh I6FtERVRXRbceReLfLfGgGg6h6h,i,i!i!-f!4!*6!1!-.@AQRVW\]_W`W`RaRaAbAb.c.c!c")!W"="="= ??r| abstract_data record_nrrreturncpd|vr|d}t|tkrd}d}|t|dzdzz}n4|d}|d}|dt|ddzdzz}dt|dzdzd ||d |d }t|||S) NrrrrfrrrTrr)typerrlenrencode_record_hex) rvrrrrnpitonrrs rzrzEF_MSISDN.encode_record_hexs } $ $"8,FF||s""!(#c&kkAo&;; QiQi#AYVAY!);c)AA *,,/ OOq,@1,D26=@@C*E*E-7 88M ww(( 9MMMr|)rNrr"N) rrrr _test_encoderrdictintrrrrrs@rzrrs. P1YkOZ:\:\" $ $ % Q+1QUix_jJlJl* , , - O Q ))) * , P { # %LL??????NNtNNPSN_bNNNNNNNNNNr|rc xeZdZdddddddddddddd d d dd d ddd ddddfdddddddddddddd d dddddd d ddddfdd dddddddddddd d ddd d ddd ddddfdd ddddddddd d ddd ddd d ddd ddddfgZdZGddeZedZedZ d%fd$ Z xZ S)&EF_SMSPX534d5343ffffffffffffffffffffffffe1ffffffffffffffffffffffff0891945197109099f9ffffff0000a9SMSCFT) tp_dest_addr tp_sc_addrtp_pidtp_dcstp_vprreserved_for_extensionrr)lengthr call_numberrrr 4915790109999i)rparameter_indicatorsrrrr tp_vp_minutesX454e6574776f726b73fffffffffffffff1ffffffffffffffffffffffffffffffffffffffffffffffff0000a7 ENetworkshfffffffffffffffffffffffffffffffffffffffffffffffffdffffffffffffffffffffffff07919403214365f7ffffffffffffffr 49301234567r頰 hfffffffffffffffffffffffffffffffffffffffffffffffffc0b919403214365f7ffffffff07919403214365f7ffffffffffffffr%ceZdZdZdZdS)EF_SMSP.ValidityPeriodAdapterc|dkr|dzS|dkr d|dz dzzS|dkr|dz dzS|d kr|d z d zSt) Nrr=rr`' ValueErrorrus rzr{z%EF_SMSP.ValidityPeriodAdapter._decodeshczzU{"39"233c g..c k22  r|c|dkr|dzdz S|dkr d|dz dzzS|dkrd|dzzS|d krd |d zzSt) Nrrrrrr=irrrrrrus rzr~z%EF_SMSP.ValidityPeriodAdapter._encode*sse||ax!|#sg2566 $$cg.//(((ck233  r|Nrrrr{r~rr|rzValidityPeriodAdapterrs2 ! ! ! ! ! ! ! !r|r"ct|drt|jdkrdStt|jdzS)zZCompute the length field for an address field (see also: 3GPP TS 24.011, section 8.2.5.2).rrrr)hasattrrrrctxs rz sc_addr_lenzEF_SMSP.sc_addr_len6sNsM** ?c#/.B.Ba.G.G4%S%9%9::Q> >r|c~t|drt|jdkrdSt|jS)zZCompute the length field for an address field (see also: 3GPP TS 23.040, section 9.1.2.5).rrr)r$rrr%s rz dest_addr_lenzEF_SMSP.dest_addr_len?sAsM** (c#/.B.Ba.G.G4s'' 'r|6f42NEF.SMSP Short message service parametersc tj|f|||dd|tdttdz dt z dt ttdz }tdttdz dt z dt ttdz }td tttttj j d z z d ttt!d t#d dt$z dt$z dt$z dt$z dt$z z d|z d|z dtdz dtdz dt&t*z |_dS)N)r;Nrrc6t|Sr)rr'r%s rzz"EF_SMSP.__init__..JsW=P=PQT=U=Ur|rrr#c6t|Sr)rr)r%s rzr/z"EF_SMSP.__init__..Lsw?T?TUX?Y?Yr|rr;r rrrrrrrrr )rrrRebuildrrrrrrrrrr InvertAdapter BitStructConst BitsIntegerFlagrr"Byter) rvrrrrrScAddrDestAddrrs rzrzEF_SMSP.__init__Hs\4dz\\U[\\\1U1U!V!VV!&(-8HeTVii8Y8Y*Y[[(763Y3Y#Z#ZZ!&(-8HeTVii8Y8Y*Y[[ I6FtERVRXRbceReLfLfGgGg6h6h,i,i!i!7 iHMaQ\]^Q_Q_H`H`HOPT HPQU HPQU HTUYHYHVW[H[ G]G]9^9^"^"0!8!-f!4!)%((!2!)%((!2!01N1Nt1T1T!T V Vr|)r*Nr+r,) rrrrrAdapterr" staticmethodr'r)rrrs@rzrrs d%_cDHTXcg9j9j(+YqOg9j9j-/22'(TUdKV5Y5Y+:==4 J J L e#udhIMY]hm>p>p(+YqOg9j9j-/22'*tWoMe7h7h+-004 J J L ue[_INZ_jo5r5r(+YqOg9j9j-/22'(TUdMX5[5[+8;;6 L L N udZ^INZ_jo5r5r(*XgOZ8]8]-:=='(TUdMX5[5[+8;;6 L L N?)OTL!!!!!!!!0??\?((\(VVVVVVVVVVr|rc<eZdZGddeZd fd ZxZS) EF_SMSSceZdZdZdZdS)EF_SMSS.MemCapAdapterc|dzrdndS)NrFTrrus rzr{zEF_SMSS.MemCapAdapter._decode_s!G-55 -r|c|rdndS)Nrrrrus rzr~zEF_SMSS.MemCapAdapter._encodebs?11 "r|Nr!rr|rz MemCapAdapterr?^s2 . . . # # # # #r|rB6f43NEF.SMSS SMS statusrrc tj|f||||d|tdtz d|tz |_dS)Nrrrsizelast_used_tpmrmemory_capacity_exceeded)rrrrrBrrvrrrrrIrrs rzrzEF_SMSS.__init__escS4dDSSFSSS V #%?@R@RSY@Z@Z%Z\\r|)rCNrDrErF)rrrr:rBrrrs@rzr=r=]sq########\\\\\\\\\\r|r=c eZdZdfd ZxZS)EF_SMSR6f47NEF.SMSRSMS status reportsr=r=c tj|f||||d|tdtz dt dz |_dS)Nr sms_record_idsms_status_reportr<rrrrrrrvrrrrrrrs rzrzEF_SMSR.__init__ls[Y4dwYYRXYYY F "$7b $ACCr|)rONrPrQrRrrrrrrs@rzrNrNksGCCCCCCCCCCr|rNc eZdZdfd ZxZS)EF_EXTNEF.EXT Extensionr(r(c tjd|||||d|tdtz dt dz dtz |_dS)N)rrrrr record_typeextension_datar% identifierrrVrWs rzrzEF_EXT.__init__ssb]St$T7]]V\]]] & "2599"QSSr|)Nr[r\r]rXrs@rzrZrZrsGSSSSSSSSSSr|rZc$eZdZ dfd ZxZS)EF_CMI6f58NEF.CMIrr4Comparison Method Informationc tj|f||||d|tdtt t t jjdz z dtz |_ dS)Nrrrcomparison_method_id) rrrGsmStringAdapterrrrrrrrrvrrrrrrrs rzrzEF_CMI.__init__zsyY4dwYYRXYYY 'U463CA3E-F-F(G(GHH HJ`agJgiir|)rdNrerfrgrXrs@rzrcrcysMEL5iiiiiiiiiir|rcc eZdZdfd ZxZS) DF_TELECOM7f10 DF.TELECOMNc tjd(|||d|ttddddtt ddd d t d d dd t t ttdddddtdddddtddddtddddtddd d!td"d#d$td%dd&d'ttttttg}||dS))Nrrr6f3bzEF.FDNzFixed dialling numbersr)rrrr6f3dzEF.CCPz#Capability Configuration Parametersr)r))rrrr6f4fzEF.ECCPrW)r*r?6f44zEF.LNDzLast Number Dialledr)r6f49zEF.SDNzService Dialling Numbersr6f4azEF.EXT1zExtension1 (ADN/SSC)6f4bzEF.EXT2zExtension2 (FDN/SSC)6f4czEF.EXT3zExtension3 (SDN)6f4dzEF.BDNzBarred Dialling Numbers6f4ezEF.EXT4zExtension4 (BDN/SSC)r)rrrr LinFixedEFrrr=rZrNrcrrrr add_files)rvrrrrfilesrs rzrzDF_TELECOM.__init__ssASt$AA&AAA HH vH3KQR S S S HH 6A8 U U U 6 JT\ ^ ^ ^ KK II II 64+@a H H H 64+E1 M M M 64,B C C 64,B C C 64,> ? ? vH3L M M M 64,B C C II HH NN OO HH HH1 4 ur|)rnroNrXrs@rzrmrms=r|rmc<eZdZddgfgZ d fd Zd Zd ZxZS) EF_LP246f05NEF.LPrNrLanguage PreferencecVt||||||dSNrrrrIrr)rvrrrrIrrrs rzrzEF_LP.__init__s/ 4dDRYZZZZZr|c t|Srr)rvin_binrs rzrzEF_LP._decode_record_bins6{{r|c t|Sr)h2brvin_jsonrs rz_encode_record_binzEF_LP._encode_record_bins7||r|)rNrrrrrrrrrrrrrs@rzrrs|TF  OUV+[[[[[[r|rceZdZdddifdddifgZdfd Zd Zd ZedGddeZ xZ S)EF_IMSI082982608200002080imsi2280628000002080829261011608457402620111064875046f07NEF.IMSIIMSIr!r!ct||||||xj||gz c_dSNrH)rrshell_commandsAddlShellCommandsrvrrrrrIrs rzrzEF_IMSI.__init__sQ 4dDIII  6 6t < <==r|c$dt|iSNr)r rvraw_hexs rz _decode_hexzEF_IMSI._decode_hexs))**r|c ,t|dSr)r rvabstractrs rz _encode_hexzEF_IMSI._encode_hexs()))r|File-Specific Commandsc0eZdZdeffd ZdefdZxZS)EF_IMSI.AddlShellCommandsefcVt||_dSr)rr_ef)rvrrs rzrz"EF_IMSI.AddlShellCommands.__init__s$ GG     DHHHr|argcr|}t|dkst|dkr|jj\}}|dkrt|dt|z dkr|d}|t|d}|jjd||zi\}}|dkr@|r@|j|jjj|dSdSdStdtd) z Change the plmn part of the IMSIrr9000rr#Nz&PLMN length does not match IMSI lengthzPLMN has wrong length!) stripr_cmdlchanread_binary_decupdate_binary_dec poutput_json selected_file decode_hexr)rvrplmndataswrmsins rzdo_update_imsi_plmnz-EF_IMSI.AddlShellCommands.do_update_imsi_plmns.99;;D4yyA~~Ta!Y_<<>> r<>>>>> +++***344;;;;;J;;54;;;;;r|rcPeZdZddddgfddddgfgZ dfd ZdZdZxZS) EF_PLMNsel22F86022806)mccmnc3304203340206f30N EF.PLMNselrr7Nrc Htj|f|||||d|dS)N)rrrrIrr rvrrrrrIrrrs rzrzEF_PLMNsel.__init__7d4dDRYdd]cdddddr|c @|dddkrdSt|SNrffffff)r rvin_hexrs rz_decode_record_hexzEF_PLMNsel._decode_record_hexs( "1": ! !4F## #r|c J|dkrdSt|d|dS)Nrrr)r rs rz_encode_record_hexzEF_PLMNsel._encode_record_hexs( d??8GENGEN;; ;r|)rNrrrr)rrrrrrrrrs@rzrrs5778 :5889 ; OGV*+eeeeee$$$ <<<<<<> ( (CSJ(,(I(I*(U(U %[*g%%%a-')**<<>> ; ;CSJ(,(I(I*(U(U %[*Ds|K(D00 s|K(D00     $(z!9 :     r|rcTeZdZd dedeedeefdZdZdZdZ d Z dS) !EF_ServiceTable.AddlShellCommandsNrallocateactivatect|\}}|jjd|\}}t |}|*|r|dxxd|zzcc<n|dxxd|zzcc<|*|r|dxxd|zzcc<n|dxxd|zzcc<|jjt||\} }|S)Nr)roffsetrr)r )rrrr read_binaryr update_binaryr) rvrrrrrhex_datarr total_datas rz_adjust_servicez1EF_ServiceTable.AddlShellCommands._adjust_service0s(7(T(TU_(`(` %[*9?66a 6TTLHbx==D#2GGGZ0GGGGGGGj11GGG#2GGGZ0GGGGGGGj11GGG!Y_::3t99[:YYNJIr|cN|t|ddS)z Allocate a service within EF.SSTTrNrrrvrs rzdo_sst_service_allocatez9EF_ServiceTable.AddlShellCommands.do_sst_service_allocateA'  Sd ; ; ; ; ;r|cN|t|ddS)z"Deallocate a service within EF.SSTFrNrrs rzdo_sst_service_deallocatez;EF_ServiceTable.AddlShellCommands.do_sst_service_deallocateE'  Se < < < < z#EF_ACC...rs+SSSAq 1 1AKSSSr|r,)r)r?s`rzr/zEF_ACC.rs"SSSSrSSSr|00000001r0002r0100r8000r*802brr6f78NEF.ACCAccess Control Classrrc tj|f||||d|dtdD}tt t ||_dS)NrHcHg|]}d|tz  Sr;)r<r6)r=r>s rz z#EF_ACC.__init__..s)===a""T)===r|r,)rrr ByteSwapped BitsSwappedr3r) rvrrrrrIrflagsrs rzrzEF_ACC.__init__|sfS4dDSSFSSS==599===%k)U2C&D&DEEr|)rGNrHrIrJ)rrracc_listrrrrs@rzr8r8nsTSHhhjj "hhqkk #hhqkk #hhqkk #hhrll $hhq1Qr** ,  O4<39FFFFFFFFFFr|r8cXeZdZdededdddfgZd fd ZxZS)EF_LOCI7802570222f8100978000078025702 22f8100978rupdated)tmsilai tmsi_time lu_status6f7eNEF.LOCILocation Informationr%r%c t|||||tdtdz dtdz dtz dt t dd d d z |_dS) NrHrXrrYrrZr[rrrr)rW not_updatedplmn_not_allowedlocation_area_not_allowed)rrrrrEnumr7rrs rzrzEF_LOCI.__init__s 4dDIII a%a.+fBT!,T$qcdLM.O.O.O"OPPr|)r\Nr]r^r_rrrrrrrrs@rzrSrSsz&JL0A0APQ`ikk n OPPPPPPPPPPr|rSc`eZdZdddddddfgZdZGdd ejZdfd ZxZ S)EF_AD00ffffnormalrTN)ms_operation_moderfu1rfu2ofm extensionsc&eZdZdZdZdZdZdZdZdS) EF_AD.OP_MODErrrrN) rrrri type_approvalnormal_and_specific_facilities%type_approval_and_specific_facilitiesmaintenance_off_line cell_testrr|rzOP_MODErqs/ )-&04-# r|ry6fadEF.ADAdministrative Datarrct|||||tdtt t t jz dttz dtdz dtz dttdtd z d td z dttz z |_dS) NrHrkrlrmrrnrorfu3rmnc_len)rrr3r)rdr7rgryByteRFUr(r6rrr5GreedyBytesRFUrrs rzrzEF_AD.__init__s 4dDIII# dEM)B)B C C C 8G$$ $ 71::  $J 6wqzz!+a..(Xn555 $$   r|)rzNr{r|r}) rrrrrenumIntEnumryrrrs@rzrgrgs%-sCPTdhjj m OL$,          r|rgc0eZdZddgfgZ d fd ZxZS) EF_VGCS92f9ffff2996fb1NEF.VGCSrrVoice Group Call Servicec tj|f|||||d|ttt d|_dS)Nrr)rrrrrrr5s rzrzEF_VGCS.__init__sPd4dDRYdd]cddd*4a>>::r|)rNrrrrrrs@rzrrsX5' # OVW0;;;;;;;;;;r|rc6eZdZddgdifgZ d fd ZxZS) EF_VGCSS010000004540fcrP)2rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr6fb2NEF.VGCSSrrVoice Group Call Service Statusc tj|f||||d|ttdtdz t dd|_dS)NrHrPrZrrr)rrrOr3Bitrrrs rzrzEF_VGCSS.__init__shS4dDSSFSSS%i CGOWQ888':':;;r|)rNrrr)rrr _test_decoderrrs@rzrrsq  ccc e L EK7;;;;;;;;;;r|rc TeZdZddddddddddddddddddfgZ d fd ZxZS) EF_eMLPP7c04FTABzeroonetwothreefour)levelsfast_call_setup_cond6fb5NEF.eMLPPrJ-enhanced Multi Level Pre-emption and Priorityc tj|f||||d|ttddddddd }t d |z d |z |_dS) NrHrrrrr,r?@rrrrr FlagsEnumr7rr rvrrrrIrrFlagsConstructrs rzrzEF_eMLPP.__init__s|S4dDSSFSSS" Ar"FFF ^ #%;N%JLLr|)rNrrJrrrs@rzrrs UT'+dDKK38ud[`5:UTY-\-\ OEKELLLLLLLLLLr|rc BeZdZddddddddddifgZ d fd ZxZS) EF_AAeM3cauto_answer_prio_levelsFTr6fb6NEF.AAeMrr"Automatic Answer for eMLPP Servicec tj|f||||d|ttddddddd }t d |z |_dS) NrHrrrrr,r?rrrrrs rzrzEF_AAeM.__init__snS4dDSSFSSS" Ar"FFF !:>!IJJr|)rNrrrrrs@rzrrs +Et\`6:TSX.[.[] _ODJ:KKKKKKKKKKr|rc$eZdZ dfd ZxZS) EF_CBMID6f48NEF.CBMIDr/r3Cell Broadcast Message Identifier for Data Downloadc ztj|f|||||d|tt|_dSrr2r5s rzrzEF_CBMID.__init__r6r|)rNrr/rrrXrs@rzrrsCWXK//////////r|rc$eZdZ dfd ZxZS) EF_ECC6fb7NEF.ECCrr*rEmergency Call Codesc tj|f|||||d|ttt d|_dS)Nrr)rrr3 BcdAdapterrrr5s rzrzEF_ECC.__init__sRd4dDRYdd]cddd%jq&:&:;;r|)rNrrrrrXrs@rzrrsCST,<<<<<<<<<@@r|)rNrrrrXrs@rzrrsMEL9@@@@@@@@@@r|rcBeZdZdedddfgZd fd ZxZS) EF_Kc837d783609a3858f05837d783609a3858fr)kccksn6f20NEF.KcCiphering key Kcrc tj|f||||d|tdtdz dtz |_dS)NrHrrr)rrrrrrrLs rzrzEF_Kc.__init__+sPS4dDSSFSSS eAhhv >>r|)rNrrrrers@rzrr's_ ,>(?(? L LNO??????????r|rcjeZdZdedededddfgZd fd ZxZS) EF_LOCIGPRSffffffffffffff22f8990000ff01ffffffffr 22f8990000ffra)ptmsi ptmsi_sigrai rau_status6f53N EF.LOCIGPRSGPRS Location Informationrtc t|||||tdtdz dtdz dtdz dt t d d d d z |_dS) NrHrrrrrrrrrr)rWrarbrouting_area_not_allowed)rrrrrdr7rrs rzrzEF_LOCIGPRS.__init__5s 4dDIII q!1;uQxx3G!&uQxx!-d4PQdeLM/O/O/O"OPPr|)rNrrrtrers@rzrr0s (S__33x==^I\I\ly { { ~OPPPPPPPPPPr|rceZdZdddddgdgfddddgdgfd dd gd dgfgZdfd ZdZdZedZxZ S) EF_xPLMNwAcT 62F210400026201 E-UTRAN NB-S1 E-UTRAN WB-S1)rract 62F2108000UTRAN 62F220488C02)rr EC-GSM-IoTGSMNG-RAN1234NrJNrc Htj|f|||||d|dSrrrs rzrzEF_xPLMNwAcT.__init__Cs7d4dDRYdd]cdddddr|c @|dddkrdSt|Sr)rrs rzrzEF_xPLMNwAcT._decode_record_hexFs( "1": ! !4"6** *r|c |dkrdSt|d|d}||d}||zS)N ffffff0000rrr)r enc_act)rvrrhplmnrs rzrzEF_xPLMNwAcT._encode_record_hexLsF d??<WU^WU^<@PRacj+k    FO:8888888888r|rceZdZGddedZGddedZGdd eeeeg Z dfd Z xZ S)EF_MMSUPc$eZdZeeZdS)!EF_MMSUP.MMS_UserPref_ProfileNameN)rrrrrrrr|rzMMS_UserPref_ProfileNamers%%k22 r|rrsrJceZdZdS)EF_MMSUP.MMS_UserPref_InfoNrRrr|rzMMS_UserPref_Infor rTr|rrceZdZdS)EF_MMSUP.MMS_User_PreferencesNrRrr|rzMMS_User_Preferencesr rr|rrU6fd1NEF.MMSUPrMMS User Preferencesc htj|f||||d|tj|_dS)Nr)rrrrr[rks rzrzEF_MMSUP.__init__s<Y4dwYYRXYYY1 r|)rNrrr) rrrr\rrr]rrrrrs@rzrrs33333:43333     JD         0'9;SUf&g    HQ,2222222222r|rc$eZdZ dfd ZxZS) EF_MMSUCP6fd2N EF.MMSUCPrrbc Ftj|f||||d|dSrrrs rzrzEF_MMSUCP.__init__s3S4dDSSFSSSSSr|)rNrrrbrXrs@rzrrsMEN8TTTTTTTTTTr|rc:eZdZdddifgZd fd Zd Zd ZxZS) EF_ICCID988812010000400310f0iccid89882110000004300102fe2rEF.ICCIDICC IdentificationcTt||||ddS)N)r#r#rHrrvrrrrrs rzrzEF_ICCID.__init__ s, 4dHMMMMMr|c$dt|iSNr)rrs rzrzEF_ICCID._decode_hex#s7++,,r|c ,t|dSr)r rs rzrzEF_ICCID._encode_hex&s'*+++r|)rrrr)rrrrrrrrrs@rzrrsv G-B"DFONNNNNN---,,,,,,,r|rcReZdZddgfddgfddgfdgdfgZdfd ZdZdZxZS)EF_PL6465de656eenffffN656e64657275ffffffff)rrruNN2f05rEF.PLPreferred LanguagescVt||||dddS)Nrr/)rrrrrIrrs rzrzEF_PL.__init__2s; 4d"AI  ? ? ? ? ?r|c <|dkrdS|dSNsascii)decode)rvbin_datars rzrzEF_PL._decode_record_bin6s$ { " "4??7++ +r|c 4|dS|dSr)encoders rzrzEF_PL._encode_record_bin<s ?;>>'** *r|)rrrrrrs@rzrr*s 4& 4& 4& "@"@"@B O??????,,, +++++++r|rc^eZdZdfd ZedGddeZxZS) DF_GSM7f20DF.GSMGSM Network related filesc pt||||xj|gz c_gt t t ttddddttddddtd td dd d dtddddtddddttdddddttdddddttddd d!d"t!t#td#dd$d%d&t%t't%d'dd(d)t'd*dd+d,t)t+t-t/t1t3t5t7t d-dd.d/t9td0dd1d2t;d3dd4d5t;d6dd7d8t;d9dd:d;t=t?tAtCtEdtGtItKtMd?dd@dAtMdBddCdDtOtQtMdEddFdGtStUtW}|,|dS)HNrq6f31z EF.HPPLMNz"Higher Priority PLMN search period)r6f38zEF.SSTzSIM service table)rr,)rrrI6f39zEF.ACMzAccumulated call meterr)rr6f3ezEF.GID1r+6f3fzEF.GID2r-6f41zEF.PUCTz!Price per unit and currency table)rr)rrI6f74zEF.BCCHzBroadcast control channelsr6f7bzEF.FPLMNzForbidden PLMNs)r'r'6faezEF.PhasezPhase identificationr6fb3zEF.VBSzVoice Broadcast Service6fb4zEF.VBSSzVoice Broadcast Service Status6f52z EF.KcGPRSzGPRS Ciphering key KcGPRS6f54zEF.SUMEzSetUpMenu Elements6f60z EF.PLMNwAcTrN6f61z EF.OPLMNwAcTrP6f62z EF.HPLMNwAcTrR6fc7zEF.MBDNr^6fc8zEF.EXT6zExtension6 (MBDN)6fcczEF.EXT7zExtension7 (CFIS)6fcfzEF.EXT8zExtension8 (MMSN))-rrrrrrrrrrr EF_SST_mapCyclicEFrr,r8rSrgrrrrrrrrrrrr r)r0rCr_rror|r8rZrrrrrr~)rvrrrrrs rzrzDF_GSM.__init__Cs> St$777  6 6 8 899A GGA IIA  GGA  LL A &$ C E E E A  KKA  FD(!4JW V V VA  VT82F D D DA  &$ 8R S S SA  &$ 8R S S SA  HHA  &$ B Q Q QA " II#A $ &$ ;( L L L%A ( HH)A * vtZ-H > > >+A . II/A 0 GG1A 2 &$ 5F D D D3A 6 II7A 8 JJ9A : FD(1J K K K;A < VT9: < < <=A @ JJAA B IICA D JJEA F HHGA H JJIA J HHKA L HHMA N HHOA P &$ 2M N N NQA R MMSA T &$ 8L M M MUA V }T V V VWA Z ~X Z Z Z[A ^ ~E G G G_A b KKcA d LLeA f HHgA h HHiA j 641K L L LkA l HHmA n IIoA p IIqA r 641D E E EsA t 641D E E EuA v IIwA x IIyA z 641D E E E{A | KK}A ~ JJA @ KKAA D ur|zApplication-Specific CommandsceZdZfdZeZedede edZ xZ S)DF_GSM.AddlShellCommandscHtdSrr)rvrs rzrz!DF_GSM.AddlShellCommands.__init__s GG       r|RANDzRandom challenge)rhelpc|jjj|j\}}|j|dS)zPerform GSM Authentication.N)rrsccrun_gsmrr)rvoptsrrs rzdo_authenticatez(DF_GSM.AddlShellCommands.do_authenticates@,44TY??JT2 I " "4 ( ( ( ( (r|) rrrrargparseArgumentParserauthenticate_parser add_argument is_hexstrcmd2with_argparserrrrs@rzrrs     '5577((iFX(YYY  0 1 1 ) ) 2 1 ) ) ) ) )r|r)rrr)rrrrrrrrrs@rzrrBsFFFFFFP:;; ) ) ) ) )J ) )<; ) ) ) ) )r|rcbeZdZdZfdZededefdZe de ddfdZ xZ S) CardProfileSIMr=c dddddddidd d d d d dddddddddddddddd}ttttg}tg}t ddd d!|||"dS)#NzNormal ending of the commandzknormal ending of the command, with extra information from the proactive SIM containing a command for the MEzIlength XX of the response data given in case of a SIM data download errorzlength XX of the response data)r91xx9exx9fxx9300zkSIM Application Toolkit is busy. Command cannot be executed at present, further normal commands are allowedzKcommand successful but after using an internal update retry routine X timeszmemory problem)920x9240zno EF selectedzout of range (invalid address)z&file ID not found or pattern not foundz%file is inconsistent with the command)9400940294049408zno CHV initializedzVaccess condition not fulfilled, unsuccessful CHV verification or authentication failedz in contradiction with CHV statusz)in contradiction with invalidation statusz;unsuccessful verification, CHV blocked, UNBLOCK CHV blockedz/increase cannot be performed, Max value reached)980298049808981098409850zincorrect parameter P3zincorrect parameter P1 or P2z-unknown instruction code given in the commandz,wrong instruction class given in the commandz*technical problem with no diagnostic given)67xx6bxx6dxx6exx6fxx)NormalzPostponed processingzMemory managementzReferencing managementzSecurity managementzApplication independent errorsSIMz GSM SIM Carda0rA)rclasel_ctrl files_in_mfraddons)rrrmrrrr)rvrrr<rs rzrzCardProfileSIM.__init__s7Fc8 F%f("" )8@? ''-p:CUI $$16GFD //9# # L JJ GG LL HH     ^"(eV  U U U U Ur|resp_hexrclt|}dddd}dddd}d iiid }t|d d |d <|d |vr||d n|d }||dd d<|dvrut|dd d|dd<t|dd|d<|d|d<|d|d<t|d|d<n|dvrt|dd d|d<|d|vr||dn|d}||dd d<|dkr'|d}||dd <|d|z|dd!<t|d"d#|d$<|d%d&zd'krd(|d)<n|d%d zrd*|d)<nd+|d)<|S),N transparent linear_fixedcyclic)rrrmfdf working_ef)rrrfile_descriptor_byte)file_descriptorproprietary_inforrfile_idrF file_type)rBrCrbigrGavailable_memoryr(r)file_characteristicsnum_direct_child_dfr*num_direct_child_efr,num_chv_unblock_adm_codes)rD file_size structure record_len num_of_recrr#access_conditionsr%rroperational_activatedlife_cycle_status_intoperational_deactivated terminated)rrr from_bytes)r=resp_binstruct_of_file_maptype_of_file_maprrI file_structrRs rzdecode_select_responsez%CardProfileSIM.decode_select_responsesd x==     ' !#    Xac]++I*21+9I*I*I%Xa[''OWXY{ FO 56{C  $ $:=..RSTURUX]:^:^C" #$6 7*-hr"uo*>*>C& ')1"C% &)1"C% &/28B':':C# $|d"a''/F+,,"$ r}s^ 2 ++++++eeeeeeeeeeeeeeeeee))))))77777777OOOOOOOOOOOO!!!!!!<<+<%<$ <  < 2 <<u<x< < <<#<+<"< "!<"#<<$(%<& '<()<*9+<,6-<.A/<0$1<2"3<4"5<67<89<:;<<2=<>'?<@ A<B)C<D#E<<<F&G<H5I<J8K<LM<N O<P/Q<R;S<T U<V>W<XBY<Z/[<\]<^_<`6a<bc<d'e<fg<<h "++.,*w<<< J 5 5 5 5 5 5 5 522222Z2224ZZZZZZZZZ>0N0N0N0N0N 0N0N0NfhVhVhVhVhVjhVhVhVV \ \ \ \ \m \ \ \CCCCCjCCCSSSSSZSSSiiiiiZiiiH     J   &;&;&;&;&;m&;&;&;T<<<<<<<<,44444 444Q=Q=Q=Q=Q=mQ=Q=Q=j     ]   &/////j///FFFFF]FFF, P P P P Pm P P P" " " " " M" " " J;;;;;j;;; ; ; ; ; ;} ; ; ;LLLLL}LLL" K K K K Km K K K/////w///<<<<