Ui 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 eZdZdddddddddddddd d d dd d ddd ddddfdddddddddddddd d dddddd d ddddfgZdZGddeZedZdfd 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 ENetworksceZdZdZdZdS)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._decode shczzU{"39"233c g..c k22  r|c|dkr|dzdz S|dkr d|dz dzzS|dkrd|dzzS|d krd |d zzSt) Nrrrrrr=iri rrrrus rzr~z%EF_SMSP.ValidityPeriodAdapter._encodesse||ax!|#sg2566 $$cg.//(((ck233  r|Nrrrr{r~rr|rzValidityPeriodAdapterr s2 ! ! ! ! ! ! ! !r|rct|drt|jdkrdStt|jdzS)zNCompute the length field for an address field (like TP-DestAddr or TP-ScAddr).rrrr)hasattrrrrctxs rz sc_addr_lenzEF_SMSP.sc_addr_len"sLsM** ?c#/.B.Ba.G.G4$S%9%9::Q> >r|6f42NEF.SMSP Short message service parametersc tj|f|||dd|tdttdz dt z dt ttdz }tdtttttj j d z z d ttt!d t#d d t$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__..,sW=P=PQT=U=Ur|rrr#rr;r rrrrrrrrr )rrrRebuildrrrrrrrrrr InvertAdapter BitStructConst BitsIntegerFlagrrByter)rvrrrrrScAddrrs rzrzEF_SMSP.__init__*sq\4dz\\U[\\\1U1U!V!VV!&(-8HeTVii8Y8Y*Y[[ I6FtERVRXRbceReLfLfGgGg6h6h,i,i!i!7 iHMaQ\]^Q_Q_H`H`HOPT HPQU HPQU HTUYHYHVW[H[ G]G]9^9^"^"0!6!-f!4!)%((!2!)%((!2!01N1Nt1T1T!T V Vr|)r$Nr%r&) rrrrrAdapterr staticmethodr#rrrs@rzrrs d%_cDHTXcg9j9j(+YqOg9j9j-/22'(TUdKV5Y5Y+:==4 J J L e#udhIMY]hm>p>p(+YqOg9j9j-/22'*tWoMe7h7h+-004 J J LO,L!!!!!!!!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._encodeCs?11 "r|Nrrr|rz MemCapAdapterr7?s2 . . . # # # # #r|r:6f43NEF.SMSS SMS statusrrc tj|f||||d|tdtz d|tz |_dS)Nrrrsizelast_used_tpmrmemory_capacity_exceeded)rrrrr:rrvrrrrrArrs rzrzEF_SMSS.__init__FscS4dDSSFSSS V #%?@R@RSY@Z@Z%Z\\r|)r;Nr<r=r>)rrrr2r:rrrs@rzr5r5>sq########\\\\\\\\\\r|r5c 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__Ms[Y4dwYYRXYYY F "$7b $ACCr|)rGNrHrIrJrrrrrrs@rzrFrFLsGCCCCCCCCCCr|rFc eZdZdfd ZxZS)EF_EXTNEF.EXT Extensionr(r(c tjd|||||d|tdtz dt dz dtz |_dS)N)rrrrr record_typeextension_datar% identifierrrNrOs rzrzEF_EXT.__init__Tsb]St$T7]]V\]]] & "2599"QSSr|)NrSrTrUrPrs@rzrRrRSsGSSSSSSSSSSr|rRc$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__[syY4dwYYRXYYY 'U463CA3E-F-F(G(GHH HJ`agJgiir|)r\Nr]r^r_rPrs@rzr[r[ZsMEL5iiiiiiiiiir|r[c 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 LinFixedEFrrr5rRrFr[rrrr add_files)rvrrrrfilesrs rzrzDF_TELECOM.__init__cssASt$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|)rfrgNrPrs@rzrerebs=r|rec6eZdZdgZ d fd Zd Zd ZxZS) EF_LP)24rz6f05NEF.LPrNrLanguage PreferencecVt||||||dSNrrrrArr)rvrrrrArrrs 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|)r{Nr|r}rr~rrrrrrrrrs@rzryrysu  OUV+[[[[[[r|ryceZdZdddifdddifgZdfd Zd Zd ZedGddeZ xZ S)EF_IMSI082982608200002080imsi2280628000002080829261011608457402620111064875046f07NEF.IMSIIMSIr!r!ct||||||xj||gz c_dSNr@)rrshell_commandsAddlShellCommandsrvrrrrrArs 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|rcLeZdZddddfddddfgZ dfd ZdZdZxZS) EF_PLMNsel22F86022806)mccmnc3304203340206f30N EF.PLMNselrr7Nrc Htj|f|||||d|dS)N)rrrrArr rvrrrrrArrrs 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@rzrrs%66 8%77 9 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_services(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_allocate"'  Sd ; ; ; ; ;r|cN|t|ddS)z"Deallocate a service within EF.SSTFrNr r s rzdo_sst_service_deallocatez;EF_ServiceTable.AddlShellCommands.do_sst_service_deallocate&'  Se < < < < z#EF_ACC...Ss+SSSAq 1 1AKSSSr|r,)r)r7s`rzr)zEF_ACC.Ss"SSSSrSSSr|00000001r0002r0100r8000r*802brr6f78NEF.ACCAccess Control Classrrc tj|f||||d|dtdD}tt t ||_dS)Nr@cHg|]}d|tz  Sr3)r4r/)r5r6s rz z#EF_ACC.__init__..as)===a""T)===r|r,)rrr ByteSwapped BitsSwappedr,r) rvrrrrrArflagsrs rzrzEF_ACC.__init__]sfS4dDSSFSSS==599===%k)U2C&D&DEEr|)r?Nr@rArB)rrracc_listrrrrs@rzr0r0OsTSHhhjj "hhqkk #hhqkk #hhqkk #hhrll $hhq1Qr** ,  O4<39FFFFFFFFFFr|r0cXeZdZdededdddfgZd 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) Nr@rPrrQrrRrSrrrr)rO not_updatedplmn_not_allowedlocation_area_not_allowed)rrrrrEnumr0rrs rzrzEF_LOCI.__init__js 4dDIII a%a.+fBT!,T$qcdLM.O.O.O"OPPr|)rTNrUrVrWrrrrrrrrs@rzrKrKesz&JL0A0APQ`ikk n OPPPPPPPPPPr|rKc`eZdZdddddddfgZdZGdd ejZdfd ZxZ S)EF_AD00ffffnormalrTN)ms_operation_moderfu1rfu2ofm extensionsc&eZdZdZdZdZdZdZdZdS) EF_AD.OP_MODErrrrN) rrrra type_approvalnormal_and_specific_facilities%type_approval_and_specific_facilitiesmaintenance_off_line cell_testrr|rzOP_MODErixs/ )-&04-# r|rq6fadEF.ADAdministrative Datarrct|||||tdtt t t jz dttz dtdz dtz dttdtd z d td z dttz z |_dS) Nr@rcrdrerrfrgrfu3rmnc_len)rrr,r!r\r0r_rqByteRFUr r/rrr.GreedyBytesRFUrrs rzrzEF_AD.__init__s 4dDIII# dEM)B)B C C C 8G$$ $ 71::  $J 6wqzz!+a..(Xn555 $$   r|)rrNrsrtru) rrrrrenumIntEnumrqrrrs@rzr_r_qs%-sCPTdhjj m OL$,          r|r_c*eZdZdgZ d fd ZxZS) EF_VGCS)92f9ffff2996fb1NEF.VGCSrrVoice Group Call Servicec tj|f|||||d|ttt d|_dS)Nrr)rrrrrrr-s rzrzEF_VGCS.__init__sPd4dDRYdd]cddd*4a>>::r|)rNrrrrrrs@rzr~r~sQ ! OVW0;;;;;;;;;;r|r~c6eZdZddgdifgZ d fd ZxZS) EF_VGCSS010000004540fcrH)2rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr6fb2NEF.VGCSSrrVoice Group Call Service Statusc tj|f||||d|ttdtdz t dd|_dS)Nr@rHrZrrr)rrrGr,Bitrrrs 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.eMLPPrB-enhanced Multi Level Pre-emption and Priorityc tj|f||||d|ttddddddd }t d |z d |z |_dS) Nr@rrrrr,r?@rrrrr FlagsEnumr0rr rvrrrrArrFlagsConstructrs rzrzEF_eMLPP.__init__s|S4dDSSFSSS" Ar"FFF ^ #%;N%JLLr|)rNrrBrrrs@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) Nr@rrrrr,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|_dSrr*r-s rzrzEF_CBMID.__init__r.r|)rNrr'rrrPrs@rzrrsCWXK//////////r|rc$eZdZ dfd ZxZS) EF_ECC6fb7NEF.ECCrr*rEmergency Call Codesc tj|f|||||d|ttt d|_dS)Nrr)rrr+ BcdAdapterrrr-s rzrzEF_ECC.__init__sRd4dDRYdd]cddd%jq&:&:;;r|)rNrrrrrPrs@rzrrsCST,<<<<<<<<<@@r|)rNrrrrPrs@rzrrsMEL9@@@@@@@@@@r|rcBeZdZdedddfgZd fd ZxZS) EF_Kc837d783609a3858f05837d783609a3858fr)kccksn6f20NEF.KcCiphering key Kcrc tj|f||||d|tdtdz dtz |_dS)Nr@rrr)rrrrrrrDs rzrzEF_Kc.__init__ sPS4dDSSFSSS eAhhv >>r|)rNrrrr]rs@rzrrs_ ,>(?(? L LNO??????????r|rcjeZdZdedededddfgZd fd ZxZS) EF_LOCIGPRSffffffffffffff22f8990000ff01ffffffffr 22f8990000ffrY)ptmsi ptmsi_sigrai rau_status6f53N EF.LOCIGPRSGPRS Location Informationrlc t|||||tdtdz dtdz dtdz dt t d d d d z |_dS) Nr@rrrrrrrrrr)rOrYrZrouting_area_not_allowed)rrrrr\r0rrs rzrzEF_LOCIGPRS.__init__s 4dDIII q!1;uQxx3G!&uQxx!-d4PQdeLM/O/O/O"OPPr|)rNrrrlr]rs@rzrrs (S__33x==^I\I\ly { { ~OPPPPPPPPPPr|rczeZdZdddddgdfddddgdfd dd gd dfgZdfd 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__$s7d4dDRYdd]cdddddr|c @|dddkrdSt|Sr)rrs rzrzEF_xPLMNwAcT._decode_record_hex's( "1": ! !4"6** *r|c |dkrdSt|d|d}||d}||zS)N ffffff0000rrr )r enc_act)rvrrhplmnr s rzrzEF_xPLMNwAcT._encode_record_hex-sF d??<WU^WU^<rr|rzShortNameForNetworkrEr@r|rFEceZdZdS)EF_PNN.NetworkNameCollectionNrrrrr|rzNetworkNameCollectionrI r|rKnested6fc5NEF.PNNr\c ftj|f|||d|tj|_dSN)rrr)rrr;rK_tlvrs rzrzEF_PNN.__init__s9H4dHHHHH0 r|)rONrPr\) rrr BER_TLV_IEr?rFTLV_IE_CollectionrKrrrs@rzr;r;xs!!!!!ZT!!!! !!!!!jd!!!!      1;MOb:c    1111111111r|r;ceZdZddededdddfdd ed ed dd dfgZdfd ZxZS)EF_OPL62f2100000fffe01z262-01r9fffe)mcc_mnclac_minlac_maxr)rQ pnn_record_id216354789abcde12z123-456789abcder06fc6NEF.OPLrrr]c tj|f||||d|tdtdtt dz dt dz dt dz z dt z |_dS) NrrQrZrr[rr\r])rrr PlmnAdapterrrrrcs rzrzEF_OPL.__init__sY4dwYYRXYYY vi E!HH8M8M.M!*588!3YuQxx5G(I(I"IJYZ`J`bbr|)raNrbrcr]r]rs@rzrWrWs  (SS[[SSQW[[ZZmn p p s  )cc&kkccRXkk[[np r r uO bbbbbbbbbbr|rWc6eZdZdddddddfgZd fd ZxZS) EF_MBI 0100000000rr) mbi_voicemailmbi_fax mbi_email mbi_other mbi_videocall6fc9NEF.MBIrrMailbox Identifierc tj|f||||d|tdtz dtz dtz dtz dt tz |_dS)Nrrirjrkrlrm)rrrrrrrcs rzrzEF_MBI.__init__srY4dwYYRXYYY !769I;W]K]!,V!3_YvEVEV5VXXr|)rnNrorprqrrs@rzrgrgsi 111_` b b eOXXXXXXXXXXr|rgcLeZdZdddddddddddddfgZdZ d fd ZxZS)EF_MWIS 0000000000F voicemailr3emailother videomailrN) mwi_statusnum_waiting_voicemailnum_waiting_faxnum_waiting_emailnum_waiting_othernum_waiting_videomailT6fcaEF.MWISrrr_c tj|f||||d|tdttdddddz d t z d t z d t z d t z d t t z |_dS)Nrr{rrrrr,rvr|r}r~rr)rrrrr0rrrrcs rzrzEF_MWIS.__init__sY4dwYYRXYYY iqXYabnp.q.q.q!q!8!?!26!9;Nv;U!4V!;=TU^_eUfUf=fhhr|)rNrrr_rrs@rzrtrts ',UUUZ!!;@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|rrkrBceZdZdS)EF_MMSUP.MMS_UserPref_InfoNrJrr|rzMMS_UserPref_InforrLr|rrceZdZdS)EF_MMSUP.MMS_User_PreferencesNrJrr|rzMMS_User_Preferencesrrr|rrM6fd1NEF.MMSUPr}MMS User Preferencesc htj|f||||d|tj|_dS)Nr)rrrrrSrcs rzrzEF_MMSUP.__init__s<Y4dwYYRXYYY1 r|)rNrr}r) rrrrTrrrUrrrrrs@rzrrs33333:43333     JD         0'9;SUf&g    HQ,2222222222r|rc$eZdZ dfd ZxZS) EF_MMSUCP6fd2N EF.MMSUCPr}rbc Ftj|f||||d|dSrrrs rzrzEF_MMSUCP.__init__s3S4dDSSFSSSSSr|)rNrr}rbrPrs@rzrrsMEN8TTTTTTTTTTr|rc:eZdZdddifgZd fd Zd Zd ZxZS) EF_ICCID988812010000400310f0iccid89882110000004300102fe2rEF.ICCIDICC IdentificationcTt||||ddS)N)r#r#r@rrvrrrrrs rzrzEF_ICCID.__init__s, 4dHMMMMMr|c$dt|iSNr)rrs rzrzEF_ICCID._decode_hexs7++,,r|c ,t|dSr)r rs rzrzEF_ICCID._encode_hexs'*+++r|)rrrr)rrrrrrrrrs@rzrrsv G-B"DFONNNNNN---,,,,,,,r|rc4eZdZgdZd fd ZdZdZxZS) EF_PL))6465de)656een)ffffN2f05rEF.PLPreferred LanguagescVt||||dddS)Nrr')rrrrrArrs rzrzEF_PL.__init__s; 4d"AI  ? ? ? ? ?r|c <|dkrdS|dSNsascii)decode)rvbin_datars rzrzEF_PL._decode_record_bins$ { " "4??7++ +r|c 4|dS|dSr)encoders rzrzEF_PL._encode_record_bins ?;>>'** *r|)rrrrrrs@rzrr slO ??????,,, +++++++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)HNri6f31z EF.HPPLMNz"Higher Priority PLMN search period)r6f38zEF.SSTzSIM service table)rr,)rrrA6f39zEF.ACMzAccumulated call meterr)rr6f3ezEF.GID1r+6f3fzEF.GID2r-6f41zEF.PUCTz!Price per unit and currency table)rr)rrA6f74zEF.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.EXT6zExternsion6 (MBDN)6fcczEF.EXT7zExternsion7 (CFIS)6fcfzEF.EXT8zExtension8 (MMSN))-rrrrryrrrrrr EF_SST_mapCyclicEFrr$r0rKr_r~rrrrrrrrrrrr!r(r;rWrrgrtr0rRrrrrrrv)rvrrrrwrs rzrzDF_GSM.__init__#s> 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 641E F F FsA t 641E F F FuA 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__ms GG       r|RANDzRandom challenge)rhelpc|jjj|j\}}|j|dS)zPerform GSM Authentication.N)rrsccrun_gsmrr)rvoptsrrs rzdo_authenticatez(DF_GSM.AddlShellCommands.do_authenticatess@,44TY??JT2 I " "4 ( ( ( ( (r|) rrrrargparseArgumentParserauthenticate_parser add_argument is_hexstrcmd2with_argparserr rrs@rzrrks     '5577((iFX(YYY  0 1 1 ) ) 2 1 ) ) ) ) )r|r)rrr)rrrrrrrrrs@rzrr"sFFFFFFP:;; ) ) ) ) )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 Carda0r9)rclasel_ctrl files_in_mfraddons)rrrerrrr)rvrrwr2rs 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_idr< file_type)r8r9rbigr=available_memoryr(r)file_characteristicsnum_direct_child_dfr*num_direct_child_efr,num_chv_unblock_adm_codes)r: file_size structure record_len num_of_recrr#access_conditionsr%rroperational_activatedlife_cycle_status_intoperational_deactivated terminated)rrr from_bytes)r3resp_binstruct_of_file_maptype_of_file_maprr? file_structrHs 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+,,"$ rss^ 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 0N0N0NfIVIVIVIVIVjIVIVIVX \ \ \ \ \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///<<<<