grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026B kjÖŒû²gã @s*dddddddddd d d g Zd d lZd d lZd d lZd d lZd d lZd dlmZd d lZd d l Z d d l Z d d l Z d dl m Z d dlmZejdded�Zeƒ ej¡ejdd„ƒZdd„Zdd„Zdd„Zdd„ZGdd„dƒZdZe  d¡ZdIdd„Z d d!„Z!e  d"e j"¡Z#d#d$„Z$d%d&„Z%d'd(„Z&Gd)d*„d*ƒZ'Gd+d,„d,ƒZ(Gd-d.„d.e(ƒZ)d/d0„Z*Gd1d„de+ƒZ,d2d3d4d5d6œZ-e.ƒZ/Gd7d8„d8ƒZ0d9d:„Z1e2e3e4eje5fZ6Gd;d<„d„Z8e9e:e*e'e)d?�e;e:e8e0e7d?�iZe9d@dDdEœdFd „Z?e9dDd@dGœdHd „Z@d S)JÚ readPlistÚ writePlistÚreadPlistFromBytesÚwritePlistToBytesÚDataÚInvalidFileExceptionÚFMT_XMLÚ FMT_BINARYÚloadÚdumpÚloadsÚdumpséN)ÚBytesIO)Úwarn)Ú ParserCreateÚ PlistFormatzFMT_XML FMT_BINARY)Úmodulec cs2t|tƒr(t||ƒ� }|VWdQRXn|VdS)N)Ú isinstanceÚstrÚopen)Ú pathOrFileÚmodeÚfp©rú-/opt/alt/python37/lib64/python3.7/plistlib.pyÚ _maybe_openOs  rc Cs0tdtdƒt|dƒ�}t|ddd�SQRXdS)Nz8The readPlist function is deprecated, use load() insteadéÚrbF)ÚfmtÚuse_builtin_types)rÚDeprecationWarningrr )rrrrrrYs c Cs8tdtdƒt|dƒ�}t||tddd�WdQRXdS)Nz9The writePlist function is deprecated, use dump() insteadrÚwbTF)rÚ sort_keysÚskipkeys)rr rr r)Úvaluerrrrrrfs cCstdtdƒtt|ƒddd�S)NzBThe readPlistFromBytes function is deprecated, use loads() insteadrF)rr)rr r r)ÚdatarrrrsscCs,tdtdƒtƒ}t||tddd�| ¡S)NzAThe writePlistToBytes function is deprecated, use dumps() insteadrTF)rr"r#)rr rr rÚgetvalue)r$Úfrrrr~s c@s:eZdZdd„Zedd„ƒZd dd„Zdd „Zd d „Zd S)rcCst|tƒstdƒ‚||_dS)Nzdata must be as bytes)rÚbytesÚ TypeErrorr%)Úselfr%rrrÚ__init__’s z Data.__init__cCs |t|ƒƒS)N)Ú_decode_base64)Úclsr%rrrÚ fromBase64—szData.fromBase64éLcCs t|j|ƒS)N)Ú_encode_base64r%)r*Ú maxlinelengthrrrÚasBase64�sz Data.asBase64cCs4t||jƒr|j|jkSt|tƒr,|j|kStSdS)N)rÚ __class__r%r(ÚNotImplemented)r*ÚotherrrrÚ__eq__ s     z Data.__eq__cCsd|jjt|jƒfS)Nz%s(%s))r3Ú__name__Úreprr%)r*rrrÚ__repr__¨sz Data.__repr__N)r/) r7Ú __module__Ú __qualname__r+Ú classmethodr.r2r6r9rrrrr‹s   sŽ zv[\x00\x01\x02\x03\x04\x05\x06\x07\x08\x0b\x0c\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f]r/cCsT|dd}g}x8tdt|ƒ|ƒD]$}||||…}| t |¡¡q"Wd |¡S)Néér ó)ÚrangeÚlenÚappendÚbinasciiZ b2a_base64Újoin)Úsr1Z maxbinsizeÚpiecesÚiÚchunkrrrr0Ãs  r0cCs(t|tƒrt | d¡¡St |¡SdS)Nzutf-8)rrrCZ a2b_base64Úencode)rErrrr,Ìs r,z{(?P\d\d\d\d)(?:-(?P\d\d)(?:-(?P\d\d)(?:T(?P\d\d)(?::(?P\d\d)(?::(?P\d\d))?)?)?)?)?ZcCsNd}t |¡ ¡}g}x,|D]$}||}|dkr2P| t|ƒ¡qWtj|ŽS)N)ÚyearÚmonthÚdayÚhourÚminuteÚsecond)Ú _dateParserÚmatchÚ groupdictrBÚintÚdatetime)rEÚorderÚgdZlstÚkeyÚvalrrrÚ_date_from_stringÙs rYcCs d|j|j|j|j|j|jfS)Nz%04d-%02d-%02dT%02d:%02d:%02dZ)rJrKrLrMrNrO)ÚdrrrÚ_date_to_stringås r[cCsZt |¡}|dk rtdƒ‚| dd¡}| dd¡}| dd¡}| dd¡}| d d ¡}|S) Nzz>)Ú_controlCharPatÚsearchÚ ValueErrorÚreplace)ÚtextÚmrrrÚ_escapeës      rgc@s¬eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)S)*Ú _PlistParsercCs"g|_d|_d|_||_||_dS)N)ÚstackÚ current_keyÚrootÚ_use_builtin_typesÚ _dict_type)r*rÚ dict_typerrrr+øs z_PlistParser.__init__cCsBtƒ|_|j|j_|j|j_|j|j_|j|j_ |j  |¡|j S)N) rÚparserÚhandle_begin_elementZStartElementHandlerÚhandle_end_elementZEndElementHandlerÚ handle_dataZCharacterDataHandlerÚhandle_entity_declZEntityDeclHandlerZ ParseFilerk)r*ZfileobjrrrÚparseÿs     z_PlistParser.parsecCs tdƒ‚dS)Nz8XML entity declarations are not supported in plist files)r)r*Z entity_nameZis_parameter_entityr$ÚbaseZ system_idZ public_idZ notation_namerrrrssz_PlistParser.handle_entity_declcCs*g|_t|d|dƒ}|dk r&||ƒdS)NZbegin_)r%Úgetattr)r*ÚelementÚattrsÚhandlerrrrrpsz!_PlistParser.handle_begin_elementcCs"t|d|dƒ}|dk r|ƒdS)NZend_)rv)r*rwryrrrrqsz_PlistParser.handle_end_elementcCs|j |¡dS)N)r%rB)r*r%rrrrrsz_PlistParser.handle_datacCsŒ|jdk rFt|jdtiƒƒs.td|jjƒ‚||jd|j<d|_nB|jsT||_n4t|jdtgƒƒsxtd|jjƒ‚|jd |¡dS)Néÿÿÿÿzunexpected element at line %d) rjrriÚtypercroÚCurrentLineNumberrkrB)r*r$rrrÚ add_objects   z_PlistParser.add_objectcCsd |j¡}g|_|S)NÚ)rDr%)r*r%rrrÚget_data,s z_PlistParser.get_datacCs"| ¡}| |¡|j |¡dS)N)rmr}rirB)r*rxrZrrrÚ begin_dict3s z_PlistParser.begin_dictcCs*|jrtd|j|jjfƒ‚|j ¡dS)Nz%missing value for key '%s' at line %d)rjrcror|riÚpop)r*rrrÚend_dict8sz_PlistParser.end_dictcCs8|jst|jdtiƒƒs*td|jjƒ‚| ¡|_dS)Nrzzunexpected key at line %d)rjrrir{rcror|r)r*rrrÚend_key>s z_PlistParser.end_keycCsg}| |¡|j |¡dS)N)r}rirB)r*rxÚarrrÚ begin_arrayDs z_PlistParser.begin_arraycCs|j ¡dS)N)rir�)r*rrrÚ end_arrayIsz_PlistParser.end_arraycCs| d¡dS)NT)r})r*rrrÚend_trueLsz_PlistParser.end_truecCs| d¡dS)NF)r})r*rrrÚ end_falseOsz_PlistParser.end_falsecCs| t| ¡ƒ¡dS)N)r}rSr)r*rrrÚ end_integerRsz_PlistParser.end_integercCs| t| ¡ƒ¡dS)N)r}Úfloatr)r*rrrÚend_realUsz_PlistParser.end_realcCs| | ¡¡dS)N)r}r)r*rrrÚ end_stringXsz_PlistParser.end_stringcCs2|jr| t| ¡ƒ¡n| t | ¡¡¡dS)N)rlr}r,rrr.)r*rrrÚend_data[sz_PlistParser.end_datacCs| t| ¡ƒ¡dS)N)r}rYr)r*rrrÚend_datebsz_PlistParser.end_dateN)r7r:r;r+rtrsrprqrrr}rr€r‚rƒr…r†r‡rˆr‰r‹rŒr�rŽrrrrrh÷s( rhc@s8eZdZddd„Zdd„Zdd„Zdd d „Zd d „Zd S)Ú_DumbXMLWriterr ú cCs||_g|_||_||_dS)N)ÚfileriÚ _indent_levelÚindent)r*r‘Ú indent_levelr“rrrr+gsz_DumbXMLWriter.__init__cCs,|j |¡| d|¡|jd7_dS)Nz<%s>é)rirBÚwritelnr’)r*rwrrrÚ begin_elementms z_DumbXMLWriter.begin_elementcCs |jd8_| d|¡dS)Nr•z)r’r–)r*rwrrrÚ end_elementrsz_DumbXMLWriter.end_elementNcCs8|dk r&t|ƒ}| d|||f¡n| d|¡dS)Nz <%s>%sz<%s/>)rgr–)r*rwr$rrrÚsimple_elementxsz_DumbXMLWriter.simple_elementcCsH|r8t|tƒr| d¡}|j |j|j¡|j |¡|j d¡dS)Nzutf-8ó )rrrIr‘Úwriter’r“)r*Úlinerrrr–€s    z_DumbXMLWriter.writeln)r r�)N)r7r:r;r+r—r˜r™r–rrrrr�fs   r�c@sFeZdZddd„Zdd „Zd d „Zd d „Zdd„Zdd„Zdd„Z dS)Ú _PlistWriterr ó r•TFcCs.|r| t¡t ||||¡||_||_dS)N)r›Ú PLISTHEADERr�r+Ú _sort_keysÚ _skipkeys)r*r‘r”r“Z writeHeaderr"r#rrrr+�s  z_PlistWriter.__init__cCs"| d¡| |¡| d¡dS)Nzz)r–Ú write_value)r*r$rrrr›—s  z_PlistWriter.writecCs4t|tƒr| d|¡�n|dkr0| d¡�n|dkrD| d¡nìt|tƒr‚d|krbdkrxnn| dd |¡nt|ƒ‚n®t|tƒrž| d t|ƒ¡n’t|tƒr´| |¡n|t|t ƒrÊ|  |¡nft|t t fƒrä|  |¡nLt|tjƒ�r| d t|ƒ¡n,t|ttfƒ�r | |¡ntd t|ƒƒ‚dS) NÚstringTÚtrueFZfalselûÿÿÿlZintegerz%dÚrealZdatezunsupported type: %s)rrr™rSÚ OverflowErrorrŠr8ÚdictÚ write_dictrÚ write_datar(Ú bytearrayÚ write_bytesrTr[ÚtupleÚlistÚ write_arrayr)r{)r*r$rrrr¢œs.           z_PlistWriter.write_valuecCs| |j¡dS)N)r«r%)r*r%rrrr©Ász_PlistWriter.write_datacCs~| d¡|jd8_tddt|j dd¡|jƒƒ}x&t||ƒ d¡D]}|rL| |¡qLW|jd7_|  d¡dS)Nr%r•ér/ržs rš) r—r’ÚmaxrAr“rdr0Úsplitr–r˜)r*r%r1rœrrrr«Äs z_PlistWriter.write_bytescCs†|rx| d¡|jr"t| ¡ƒ}n| ¡}x@|D]8\}}t|tƒsR|jrJq0tdƒ‚| d|¡|  |¡q0W|  d¡n | d¡dS)Nr§zkeys must be stringsrW) r—r ÚsortedÚitemsrrr¡r)r™r¢r˜)r*rZr³rWr$rrrr¨Ñs    z_PlistWriter.write_dictcCs@|r2| d¡x|D]}| |¡qW| d¡n | d¡dS)NÚarray)r—r¢r˜r™)r*r´r$rrrr®ås    z_PlistWriter.write_arrayN)r ržr•TF) r7r:r;r+r›r¢r©r«r¨r®rrrrr�Œs % r�cCs”d}x|D]}| |¡r dSq WxntjdftjdftjdffD]N\}}| |¡sRq>x8|D]0}|| d¡ |¡}|dt|ƒ…|krXdSqXWq>WdS)N)s6xBBQQQ)Ú_fpÚseekÚosÚSEEK_ENDÚreadrArÚstructÚunpackÚ _ref_sizeÚ _read_intsÚ_object_offsetsÚ _undefinedÚ_objectsÚ _read_objectÚOSErrorÚ IndexErrorÚerrorr¦rc)r*rÚtrailerÚ offset_sizeÚ num_objectsÚ top_objectÚoffset_table_offsetrrrrt%s      z_BinaryPlistParser.parsecCsL|dkrH|j d¡dd@}d|>}dt|}t ||j |¡¡dS|S)Nér•r r>r`)rËrÏÚ_BINARY_FORMATrÐrÑ)r*ÚtokenLrfrEr'rrrÚ _get_size>s  z_BinaryPlistParser._get_sizecst|j ˆ|¡‰ˆtkr2t d|›tˆ›�ˆ¡SˆrFtˆƒˆ|krLtƒ‚t‡‡fdd„tdˆ|ˆƒDƒƒSdS)Nr`c3s&|]}t ˆ||ˆ…d¡VqdS)ÚbigN)rSÚ from_bytes)Ú.0rG)r%Úsizerrú Osz0_BinaryPlistParser._read_ints..r ) rËrÏrárÐrÑrArr¬r@)r*Únrçr)r%rçrrÓHsz_BinaryPlistParser._read_intscCs| ||j¡S)N)rÓrÒ)r*rérrrÚ _read_refsRsz_BinaryPlistParser._read_refscsøˆj|}|tk r|Sˆj|}ˆj |¡ˆj d¡d}|d@|d@}}|dkr^d}�nŒ|dkrnd}�n||dkr~d}�nl|dkrŽd }�n\|d krºtjˆj d|>¡d |d kd �}�n0|dkrÞt  dˆj d¡¡d}�n |dk�rt  dˆj d¡¡d}�næ|dk�rDt  dˆj d¡¡d}t   ddd¡t j |d�}�n¦|dk�rŒˆ  |¡}ˆj |¡}t |ƒ|k�rxtƒ‚ˆj�sêt|ƒ}�n^|dk�rΈ  |¡}ˆj |¡} t | ƒ|k�rÀtƒ‚|  d¡}�n|dk�rˆ  |¡d}ˆj |¡} t | ƒ|k�rtƒ‚|  d¡}nØ|dk�rXˆ  |¡}ˆ |¡} g}|ˆj|<| ‡fdd„| Dƒ¡n’|dk�r䈠 |¡}ˆ |¡} ˆ |¡} ˆ ¡}|ˆj|<y2x,t| | ƒD]\} } ˆ | ¡|ˆ | ¡<�q WWntk �ràtƒ‚YnXntƒ‚|ˆj|<|S) Nr•r éðràrÈFé Tr?r¯rär>)Úsignedé"z>fr=é#z>dé3iÑ)Zsecondsé@éPrµé`rzutf-16beé c3s|]}ˆ |¡VqdS)N)r×)ræÚx)r*rrrè¢sz2_BinaryPlistParser._read_object..éÐ)rÖrÕrÔrËrÌrÏrSrårÐrÑrTZ timedeltarãrArrlrr»rêÚextendrmÚzipr×r))r*ÚrefÚresultÚoffsetÚtokenZtokenHrâr'rEr%Zobj_refsZkey_refsÚkÚor)r*rr×Us‚                          z_BinaryPlistParser._read_objectN) r7r:r;r+rtrãrÓrêr×rrrrrÉs   rÉcCs0|dkr dS|dkrdS|d>d>r(dSdSdS)Nér•irrÊr=rÈr)ÚcountrrrÚ_count_to_size»s rc@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)Ú_BinaryPlistWritercCs||_||_||_dS)N)rËr r¡)r*rr"r#rrrr+Ësz_BinaryPlistWriter.__init__c Csäg|_i|_i|_| |¡t|jƒ}dg||_t|ƒ|_t|j|_ |j   d¡x|jD]}|  |¡q\W|  |¡}|j  ¡}t|ƒ}dt||}|j   tj|f|jžŽ¡d}|||j|||f} |j   tjd| žŽ¡dS)Nr sbplist00r`ú >5xBBBQQQ)r)Ú_objlistÚ _objtableÚ _objidtableÚ_flattenrArÔrrÒráÚ _ref_formatrËr›Ú _write_objectÚ _getrefnumÚtellrÐÚpack) r*r$rÝÚobjrÞrßrÜZ offset_formatZ sort_versionrÛrrrr›Ðs(          z_BinaryPlistWriter.writec Cs~t|tƒr"t|ƒ|f|jkrZdSn8t|tƒrHt|jƒ|jf|jkrZdSnt|ƒ|jkrZdSt|j ƒ}|j   |¡t|tƒrŽ||jt|ƒ|f<n0t|tƒr°||jt|jƒ|jf<n||jt|ƒ<t|t ƒ�rPg}g}|  ¡}|j rèt|ƒ}xB|D]:\}}t|tƒ�s|j�r qîtdƒ‚|  |¡|  |¡qîWxLt ||¡D]}| |¡�q:Wn*t|ttfƒ�rzx|D]}| |¡�qfWdS)Nzkeys must be strings)rÚ_scalarsr{rrr%ÚidrrArrBr§r³r r²rr¡r)Ú itertoolsÚchainrr­r¬) r*r$ZrefnumÚkeysÚvaluesr³rýÚvrþrrrrýsB          z_BinaryPlistWriter._flattencCsNt|tƒr|jt|ƒ|fSt|tƒr<|jt|jƒ|jfS|jt|ƒSdS)N)rrrr{rr%rr)r*r$rrrr -s   z_BinaryPlistWriter._getrefnumcCs´|dkr"|j t d||B¡¡nŽ|dkrH|j t d|dBd|¡¡nh|dkrn|j t d|dBd|¡¡nB|d kr”|j t d |dBd |¡¡n|j t d |dBd |¡¡dS)Nràz>Brÿz>BBBr¯iz>BBHélz>BBLéz>BBQé)rËr›rÐr )r*rürçrrrÚ _write_size5sz_BinaryPlistWriter._write_sizec s舠|¡}ˆj ¡ˆj|<|dkr2ˆj d¡�n²|dkrJˆj d¡�nš|dkrbˆj d¡�n‚t|tƒ�rl|dkr´yˆj t dd|¡¡Wn tj k r°t |ƒd‚YnXn´|d krÔˆj t d d |¡¡n”|d krôˆj t d d|¡¡nt|dk�rˆj t dd|¡¡nR|dk�r8ˆj t dd|¡¡n0|dk�r`ˆj d|j d ddd�¡nt |ƒ‚�nxt|t ƒ�r’ˆj t dd|¡¡�nRt|t j ƒ�rÐ|t   ddd¡ ¡}ˆj t dd|¡¡�nt|tƒ�rˆ dt|jƒ¡ˆj |j¡�nät|ttfƒ�r0ˆ dt|ƒ¡ˆj |¡�n´t|tƒ�r y| d¡}ˆ dt|ƒ¡Wn4tk �rŽ| d ¡}ˆ d!t|ƒd"¡YnXˆj |¡�nDt|ttfƒ�rú‡fd#d$„|Dƒ}t|ƒ}ˆ d%|¡ˆj tjd&ˆj|f|žŽ¡nêt|tƒ�rÜgg}}ˆj�r&t| ¡ƒ} n| ¡} xR| D]J\} } t| tƒ�s\ˆj�rT�q4t d'ƒ‚| !ˆ | ¡¡| !ˆ | ¡¡�q4Wt|ƒ}ˆ d(|¡ˆj tjd&ˆj|f|žŽ¡ˆj tjd&ˆj|f|žŽ¡nt |ƒ‚dS))NóFóTržr z>Bqrrÿz>BBr¯iz>BHrlz>BLrlz>BQlórä)ríz>BdrïiÑr•rðrñrµròzutf-16berórcsg|]}ˆ |¡‘qSr)r )rærþ)r*rrú ~sz4_BinaryPlistWriter._write_object..rôr`zkeys must be stringsrö)"r rËr rÔr›rrSrÐr rÚr¦Úto_bytesrŠrTZ total_secondsrrrAr%r(rªrrIÚUnicodeEncodeErrorr­r¬rr§r r²r³r¡r)rB) r*r$rùr'ÚtZrefsrEZkeyRefsZvalRefsZ rootItemsrýrr)r*rr Es„            $    "$z _BinaryPlistWriter._write_objectN) r7r:r;r+r›rr rr rrrrrÊs -0rcCs|dd…dkS)NrÈsbplist00r)r¼rrrÚ_is_fmt_binaryœsr )ÚdetectroÚwriterT)rrrncCsn|dkrL| d¡}| d¡x:t ¡D]}|d|ƒr&|d}Pq&Wtƒ‚n t|d}|||d�}| |¡S)NrÊr r!ro)rrn)rÏrÌÚ_FORMATSrrrt)rrrrnr¼ÚinfoÚPÚprrrr ²s     cCst|ƒ}t||||d�S)N)rrrn)rr )r$rrrnrrrrr ÈsF)rr"r#cCs:|tkrtd|fƒ‚t|d|||d�}| |¡dS)NzUnsupported format: %rr")r"r#)r#rcr›)r$rrr"r#r"rrrr Ñs)rr#r"cCs tƒ}t|||||d�| ¡S)N)rr#r")rr r&)r$rr#r"rrrrr Üs)r/)AÚ__all__rCr·Ú contextlibrTÚenumÚiorrrÍÚrerÐÚwarningsrZxml.parsers.expatrÚEnumr7rÚglobalsÚupdateÚ __members__ÚcontextmanagerrrrrrrrŸÚcompilerar0r,ÚASCIIrPrYr[rgrhr�r�rÁrcrráÚobjectrÕrÉrrrSrŠr(rrr rr§rr#r r r r rrrrÚ1sr          0    o&d!# S