grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026U iÛfœYã@s ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZzddlZejZWnek r dZejZYnXz ddlZWnek rÆdZYnXz ddlZWnek rìdZYnXdddddddd d d d d dg ZGdd„deƒZGdd „d eƒZeZZdZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'e  (e&¡Z)dZ*dZ+dZ,dZ-dZ.d Z/d!Z0d"Z1dZ2d#Z3d$Z4d%Z5e  (e4¡Z6dZ7dZ8dZ9dZ:dZ;d ZdZ?d#Z@d&ZAd'ZBdZCd(ZDdZEd)ZFd*ZGd+ZHd,ZId-ZJd.ZKe  (eJ¡ZLdZMdZNdZOdZPdZQd ZRd!ZSd"ZTdZUd#ZVd&ZWd'ZXd/ZYd0ZZe  (eY¡Z[d1Z\d2Z]e  (e\¡Z^dZ_dZ`dZadZbdZcd Zdd!Zed"ZfdZgd#Zhd3Zie  jd4¡Zkd5d6„Zld7d8„Zmd9d „Znd:d;„Zodd „d eqƒZrdasd?d@„ZtdAdB„ZuGdCdD„dDƒZvGdEdF„dFƒZwdGdHdIdIdIdIdJdKdLdMdJdNdOdPdQdRdSdTœZxdUdV„ZydsdWdX„ZzdYdZ„Z{Gd[d\„d\ƒZ|Gd]d^„d^ƒZ}Gd_d`„d`ej~ƒZGdadb„dbej~ƒZ€Gdcd „d ƒZ�Gddd „d e�ƒZ‚dedf„Zƒdgdh„Z„e…j†Z‡didj„ZˆGdkdl„dle�ƒZ‰Gdmdn„dne‰ƒZŠGdod„dƒZ‹dtdpdq„ZŒe�drk�reŒƒdS)uéNÚ BadZipFileÚ BadZipfileÚerrorÚ ZIP_STOREDÚ ZIP_DEFLATEDÚ ZIP_BZIP2ÚZIP_LZMAÚ is_zipfileÚZipInfoÚZipFileÚ PyZipFileÚ LargeZipFileÚPathc@s eZdZdS)rN©Ú__name__Ú __module__Ú __qualname__©rrú,/opt/alt/python38/lib64/python3.8/zipfile.pyr+sc@s eZdZdS)r Nrrrrrr /siÿÿÿéÿÿéé ééé-é.é?s<4s4H2LHsPKéééééééé z<4s4B4HL2L5H2LsPKé é é ééééz <4s2B4HL2L2HsPKz<4sLQLsPKz <4sQ2H2L4QsPKiPKúr0Ústructr/ÚstructEndArchive64LocatorÚstringEndArchive64LocatorrÚsizeEndCentDir64ÚstructEndArchive64ÚstringEndArchive64Ú_ECD_SIGNATUREÚ_ECD_DISK_NUMBERÚ_ECD_DISK_STARTÚ_ECD_ENTRIES_THIS_DISKÚ_ECD_ENTRIES_TOTALÚ _ECD_SIZEÚ _ECD_OFFSET)ÚfpinÚoffsetÚendrecÚdataZsigZdisknoZreloffZdisksZszÚcreate_versionZ read_versionZdisk_numZdisk_dirZdircountZ dircount2ZdirsizeZ diroffsetrrrÚ _EndRecData64Ös@      þrXc Csh| dd¡| ¡}z| t d¡Wntk r<YdSX| ¡}t|ƒtkr¬|dd…tkr¬|dd…dkr¬t t |¡}t |ƒ}|  d¡|  |t¡t |t |ƒSt |dtdƒ}| |d¡| ¡}| t¡}|dk�rd|||t…}t|ƒtk�rdSt t t |¡ƒ}|t}||t|t|…}|  |¡|  ||¡t |||||ƒSdS)Nrrr éþÿÿÿsr-i)rDÚtellÚsizeEndCentDirr:r>r0ÚstringEndArchiverFr/ÚstructEndArchiveÚlistr1rXÚmaxÚrfindÚ_ECD_COMMENT_SIZE) rSZfilesizerVrUZmaxCommentStartr5ZrecDataZ commentSizeÚcommentrrrr9sD  ÿþ      ÿr9c@sXeZdZdZddd„Zdd„Zdd d „Zd d „Zd d„Ze dddœdd„ƒZ dd„Z dS)r )Ú orig_filenamerBÚ date_timeÚ compress_typeÚ_compresslevelrbr3Ú create_systemrWÚextract_versionÚreservedÚ flag_bitsÚvolumeÚ internal_attrÚ external_attrÚ header_offsetÚCRCÚ compress_sizeÚ file_sizeÚ _raw_timeÚ _end_offsetÚNoName©é¼rrrrrcCsÎ||_| tdƒ¡}|dkr(|d|…}tjdkrJtj|krJ| tjd¡}||_||_|ddkrjtdƒ‚t |_ d|_ d|_ d|_ tjdkr”d|_nd|_t|_t|_d|_d|_d|_d|_d|_d|_dS)Nrú/rvz+ZIP does not support timestamps before 1980r-Zwin32r)rcÚfindÚchrÚosÚsepÚreplacerBrdÚ ValueErrorrrerfrbr3ÚsysÚplatformrgÚDEFAULT_VERSIONrWrhrirjrkrlrmrs)ÚselfrBrdZ null_byterrrÚ__init__Ys2   zZipInfo.__init__cCsÜd|jj|jfg}|jtkr8| dt |j|j¡¡|jd?}|jd@}|rd| dt   |¡¡|rv| d|¡|  ¡}|rˆ|j r˜| d|j ¡|r¢|j rÈ|jtks¸|j |j krÈ| d|j ¡| d ¡d  |¡S) Nz<%s filename=%rú compress_type=%sr)rz filemode=%rz external_attr=%#xz file_size=%rz compress_size=%rú>Ú)Ú __class__rrBrerr1Úcompressor_namesÚgetrmÚstatÚfilemodeÚis_dirrqrpr2)r�rCÚhiÚloÚisdirrrrÚ__repr__…s0 ÿÿ    ÿ þ zZipInfo.__repr__NcCs||j}|ddd>|dd>B|dB}|dd>|d d>B|ddB}|jd @rfd}}}n|j}|j}|j}|j}d} |dkrš|tkp˜|tk}|rÂd } |t | dt  | ¡d ||¡}|tksÒ|tkrê|sÞt d ƒ‚d }d }t } |j t k�rtt| ƒ} n|j tk�rtt| ƒ} t| |jƒ|_t| |jƒ|_| ¡\} } t tt|j|j| |j |||||t| ƒt|ƒ¡ } | | |S)Nrrvr$rr!rrr&r rz|j d¡|jdBfYSXdS)NÚasciiúutf-8é)rBÚencoderjÚUnicodeEncodeError©r�rrrr—ÉszZipInfo._encodeFilenameFlagscCs†|j}tj}t|ƒdk�r‚|d|dd…ƒ\}}|dt|ƒkrPtd||fƒ‚|dk�rp|dkrv|d|dd…ƒ}nV|dkr’|d |dd …ƒ}n:|d kr®|d |dd …ƒ}n|dkr¼d}ntd||fƒ‚d}|jdk�rt|ƒ|krðtdƒ‚|||_|d7}|jdk�r6t|ƒ|k�r$tdƒ‚|||_|d7}|jdk�rpt|ƒ|k�rXtdƒ‚|j}|||_|d7}||dd…}q dS)Nr r,z"Corrupt extra field %04x (size=%d)réz|_|rôd|_|jd O_n|j|_|S) Nrr"rvrué;)r°rééé;r³rrwrr))Ú isinstancerzÚPathLikeÚfspathr‰ÚS_ISDIRÚst_modeÚtimeÚ localtimeÚst_mtimeÚpathÚnormpathÚ splitdriver{ÚaltseprmrqÚst_size) ÚclsrBÚarcnamer¯ÚstrŽÚmtimerdÚzinforrrÚ from_files0       zZipInfo.from_filecCs|jddkS)Néÿÿÿÿrw©rBr§rrrr‹'szZipInfo.is_dir)rtru)N)N) rrrÚ __slots__r‚r�r¡r—r­Ú classmethodrÆr‹rrrrr >s , .2%cCs0tdƒD]"}|d@r"|d?dA}q|dL}q|S)Nrrl q[)Úrange)Úcrcr7rrrÚ_gen_crc1s   rÍcsld‰d‰d‰tdkr&ttttdƒƒƒat‰‡fdd„‰‡‡‡‡fdd„‰|D] }ˆ|ƒqL‡‡fd d „}|S) NixV4i‰gE#i�xV4écs|d?ˆ||Ad@AS)Nréÿr)ZchrÌ)ÚcrctablerrÚcrc32Ksz_ZipDecrypter..crc32cs<ˆ|ˆƒ‰ˆˆd@d@‰ˆddd@‰ˆˆd?ˆƒ‰dS)NrÏr�i„rr¨r)Úc)rÑÚkey0Úkey1Úkey2rrÚ update_keysOs z"_ZipDecrypter..update_keyscsNtƒ}|j}|D]4}ˆdB}|||dAd?d@N}ˆ|ƒ||ƒqt|ƒS)NrrrrÏ)Ú bytearrayr1Úbytes)rVrCr1rÒÚk)rÕrÖrrÚ decrypterYs z _ZipDecrypter..decrypter)Ú _crctabler^ÚmaprÍrË)ÚpwdÚprÚr)rÑrÐrÓrÔrÕrÖrÚ _ZipDecrypterAs   rßc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚLZMACompressorcCs d|_dS©N)Ú_compr§rrrr‚iszLZMACompressor.__init__cCsFt dtji¡}tjtjt tj|¡gd�|_t dddt |ƒ¡|S)NÚid©Úfiltersz| ¡rtdƒ‚|j ||¡|j ¡|_|jW5QR£SQRXdS)Nz}Can't reposition in the ZIP file while there is an open writing handle on it. Close the writing handle before trying to read.)rrr}rrDrZr)r�rTÚwhencerrrrDís  z_SharedFile.seekrÇc CsX|j�H| ¡rtdƒ‚|j |j¡|j |¡}|j ¡|_|W5QR£SQRXdS)NúyCan't read from the ZIP file while there is an open writing handle on it. Close the writing handle before trying to read.)rrr}rrDrr>rZ©r�ÚnrVrrrr>÷s  z_SharedFile.readcCs$|jdk r |j}d|_| |¡dSrá)rr)r�Úfileobjrrrr s z_SharedFile.closeN)r)rÇ)rrrr‚rDr>r rrrrrãs rc@s4eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd S) Ú _TellablecCs||_d|_dS©Nr)r<rT©r�r<rrrr‚ sz_Tellable.__init__cCs|j |¡}|j|7_|Srá)r<ÚwriterT)r�rVrrrrrs z_Tellable.writecCs|jSrá)rTr§rrrrZsz_Tellable.tellcCs|j ¡dSrá)r<rìr§rrrrìsz_Tellable.flushcCs|j ¡dSrá)r<r r§rrrr sz_Tellable.closeN)rrrr‚rrZrìr rrrrr s rcs¢eZdZdZdZdZd'dd„Zdd „Zd d „Zd(d d„Z d)dd„Z dd„Z d*dd„Z dd„Z dd„Zdd„Zdd„Z‡fdd„Zd d!„Zd+d#d$„Zd%d&„Z‡ZS),Ú ZipExtFilei@iiNFcCs(||_||_||_|j|_|j|_|j|_t |jƒ|_ d|_ d|_ d|_ d|_||_|j|_t|dƒrz|j|_tdƒ|_nd|_d|_z4| ¡r¸| ¡|_|j|_|j|_|j|_d|_Wntk rÎYnXd|_|�r$|j d@rö|j!d?d@}n|jd?d@}| "¡}||k�r$t#d |j$ƒ‚dS) NFr-rroTrrÏr¨zBad password for file %r)%Ú_fileobjÚ_pwdÚ_close_fileobjreÚ_compress_typerpÚ_compress_leftrqÚ_leftrÚ _decompressorÚ_eofÚ _readbufferÚ_offsetÚnewlinesÚmoderBÚnamer@roÚ _expected_crcrÑÚ _running_crcÚ _seekablerrZÚ_orig_compress_startÚ_orig_compress_sizeÚ_orig_file_sizeÚ_orig_start_crcÚAttributeErrorÚ _decrypterrjrrÚ_init_decrypterrørc)r�rr!ÚzipinforÝZ close_fileobjZ check_byteÚhrrrr‚+sF       zZipExtFile.__init__cCs4t|jƒ|_|j d¡}|jd8_| |¡dS)Nrr&)rßrr+rr>r)r�r rrrr,^s  zZipExtFile._init_decryptercCsvd|jj|jjfg}|jsX| d|j|jf¡|jtkrb| dt   |j|j¡¡n | d¡| d¡d  |¡S)Nú<%s.%sz name=%r mode=%rrƒú [closed]r„r…) r†rrÚclosedr1r"r!rrr‡rˆr2©r�rCrrrr�isÿ ÿÿ  zZipExtFile.__repr__rÇcCsL|dkr>|j d|j¡d}|dkr>|j|j|…}||_|Stj ||¡S)Nró r)rrxrÚioÚBufferedIOBaseÚreadline)r�Úlimitr6Úlinerrrr6wszZipExtFile.readlinercCsr|t|jƒ|jkr\| |¡}t|ƒ|jkrJ||j|jd…|_d|_n|jt|ƒ8_|j|j|jd…S)Nri)r0rrr>)r�rÚchunkrrrÚpeek‡s zZipExtFile.peekcCsdS©NTrr§rrrÚreadable”szZipExtFile.readablecCs|dks|dkrH|j|jd…}d|_d|_|jsD|| |j¡7}q,|S||j}|t|jƒkrz|j|j|…}||_|S|t|jƒ}|j|jd…}d|_d|_|dkrü|jsü| |¡}|t|ƒkræ||_||_||d|…7}qü||7}|t|ƒ8}q¤|S©Nrr-©rrrÚ_read1ÚMAX_Nr0)r�rÚbufÚendrVrrrr>—s4   zZipExtFile.readcCs@|jdkrdSt||jƒ|_|jr<|j|jkr)r�rrArVrBrrrÚread1Âs>     zZipExtFile.read1cCs"|js|dkrdS|jtkrH|jj}|t|ƒkrR|| |t|ƒ¡7}n | |¡}|jtkrj|jdk|_nx|jtkrÂt ||j ƒ}|j  ||¡}|jj p¨|jdko¨|jj |_|jrâ||j  ¡7}n |j  |¡}|jj pÞ|jdk|_|d|j…}|jt|ƒ8_|jdk�rd|_| |¡|S)Nrr-T)rrrrZunconsumed_tailr0Ú_read2rrr_Ú MIN_READ_SIZErñrðrìrrDrrrrr?çs4       þ   zZipExtFile._read1cCsd|jdkrdSt||jƒ}t||jƒ}|j |¡}|jt|ƒ8_|sLt‚|jdk r`| |¡}|Sr=) rr_rGÚminrr>r0ÚEOFErrorr+rrrrrF s      zZipExtFile._read2cs&z|jr|j ¡W5tƒ ¡XdSrá)Úsuperr rrr§©r†rrr szZipExtFile.closecCs|jSrá)r%r§rrrr"szZipExtFile.seekablercCs>|jst d¡‚| ¡}|dkr&|}n.|dkr8||}n|dkrL|j|}ntdƒ‚||jkrd|j}|dkrpd}||}||j}|dkr¤|t|jƒkr¤||_d}nf|dk�r |j   |j ¡|j |_ |j|_|j|_d|_d|_t|jƒ|_d|_|}|jdk �r | ¡|dk�r6t|j|ƒ}| |¡||8}�q | ¡S)Nú!underlying stream is not seekablerrrzCwhence must be os.SEEK_SET (0), os.SEEK_CUR (1), or os.SEEK_END (2)r-F)r%r4ÚUnsupportedOperationrZr(r}rr0rrrDr&r)r$r'rrrrrrr+r,rHÚ MAX_SEEK_READr>)r�rTr Zcurr_posZnew_posZ read_offsetZ buff_offsetZread_lenrrrrD%sH            zZipExtFile.seekcCs0|jst d¡‚|j|jt|jƒ|j}|S)NrL)r%r4rMr(rr0rr)r�ZfileposrrrrZUs zZipExtFile.tell)NF)rÇ)r)rÇ)r)rrrr@rGrNr‚r,r�r6r:r<r>rDrEr?rFr rrDrZÚ __classcell__rrrKrrs(ÿ 3    ! %$  0rcs@eZdZdd„Zedd„ƒZdd„Zdd„Z‡fd d „Z‡Z S) Ú _ZipWriteFilecCs8||_||_||_t|j|jƒ|_d|_d|_d|_ dSr) Ú_zinfoÚ_zip64Ú_zipfilerÿrerfÚ _compressorÚ _file_sizeÚ_compress_sizeÚ_crc)r�ÚzfrÅršrrrr‚]sÿz_ZipWriteFile.__init__cCs|jjSrá)rSr<r§rrrrgsz_ZipWriteFile._fileobjcCsdSr;rr§rrrÚwritableksz_ZipWriteFile.writablecCsf|jrtdƒ‚t|ƒ}|j|7_t||jƒ|_|jrV|j |¡}|jt|ƒ7_|j   |¡|S)NzI/O operation on closed file.) r1r}r0rUrÑrWrTrërVrr)r�rVÚnbytesrrrrns  z_ZipWriteFile.writec sb|jr dS�zFtƒ ¡|jrR|j ¡}|jt|ƒ7_|j   |¡|j|j _ n |j |j _ |j|j _|j |j _|j jd@rÀ|jr†dnd}|j   t |t|j j|j j |j j¡¡|j  ¡|j_nn|jsê|j tkrØtdƒ‚|jtkrêtdƒ‚|j  ¡|j_|j  |j j¡|j   |j  |j¡¡|j  |jj¡|jj |j ¡|j |jj|j j <W5d|j_XdS)NFrzd d!œd"d#„Zd?d$d%„Zd@d&d'„ZdAd(d)„Zed*d+„ƒZd,d-„Zd.d/„ZdBd0d1„ZdCd2d3„Zd4d5„Zd6d7„Z d8d9„Z!d:d;„Z"dS)Dr NÚrTr®c CsP|dkrtdƒ‚t|ƒ||_d|_d|_i|_g|_||_||_||_ d|_ d|_ ||_ t |tjƒrpt |¡}t |tƒræd|_||_dddd dd d d œ}||}zt ||¡|_Wqätk rÞ||krØ||}Yq¢‚YqäXqäq¢nd |_||_t|ddƒ|_d |_t ¡|_d|_d|_�z|dk�r4| ¡nð|dk�r¾d|_z|j  ¡|_!Wn2t"tfk �r†t#|jƒ|_d|_!d|_Yn6Xz|j $|j!¡Wn t"tfk �rºd|_YnXnf|dk�rz| ¡|j $|j!¡Wn6t%k �r|j $dd¡d|_|j  ¡|_!YnXntdƒ‚Wn$|j} d|_| &| ¡‚YnXdS)N)r`ÚwÚxÚaz+ZipFile requires mode 'r', 'w', 'x', or 'a'Frr-r?úw+búx+búr+bÚwbZxb)r`rarbrcrfrdrerr"Tr`)rarbrcrz"Mode must be 'r', 'w', 'x', or 'a')'r}rüÚ _allowZip64Ú _didModifyÚdebugr^r]rûrþr!rÝÚ_commentÚ_strict_timestampsr´rzrµr¶ÚstrÚ _filePassedrBr4rAr<r:ÚgetattrÚ _fileRefCntÚ threadingÚRLockrr%rÚ_RealGetContentsrZr\r*rrDrÚ_fpclose) r�rr!rûÚ allowZip64rþr¯ZmodeDictrŠr<rrrr‚ÄsŠ   ÿ         zZipFile.__init__cCs|Srárr§rrrÚ __enter__szZipFile.__enter__cCs | ¡dSrá©r )r�ÚtypeÚvalueÚ tracebackrrrÚ__exit__!szZipFile.__exit__cCs‚d|jj|jjfg}|jdk rd|jr8| d|j¡n|jdk rR| d|j¡| d|j¡n | d¡| d¡d |¡S)Nr/z file=%rz filename=%rz mode=%rr0r„r…) r†rrr<rnr1rBr!r2r2rrrr�$sÿ    zZipFile.__repr__c Csæ|j}z t|ƒ}Wntk r.tdƒ‚YnX|s�r-z*ZipFile._RealGetContents..T)ÚkeyÚreverse);r<r9r:rrjÚprintrQrRÚ _ECD_COMMENTrkÚ _ECD_LOCATIONrLrKrIrEr\rDr>r4ÚBytesIOÚsizeCentralDirr0rFr/ÚstructCentralDirÚ _CD_SIGNATUREÚstringCentralDirÚ_CD_FILENAME_LENGTHÚdecoder Ú_CD_EXTRA_FIELD_LENGTHr3Ú_CD_COMMENT_LENGTHrbÚ_CD_LOCAL_HEADER_OFFSETrnrWrgrhrirjrerorprqÚMAX_EXTRACT_VERSIONrúrkrlrmrrrdr­r]r1r^rBÚsortedrs)r�r<rUZsize_cdZ offset_cdÚconcatZinferredrVr}ÚcentdirrBÚflagsrbÚtÚdZ end_offsetrÅrrrrs2sž                  þ ÿ ÿ   ÿþ  þ zZipFile._RealGetContentscCsdd„|jDƒS)NcSsg|] }|j‘qSrrÈ)Ú.0rVrrrÚ ˆsz$ZipFile.namelist..©r]r§rrrÚnamelist†szZipFile.namelistcCs|jSrár—r§rrrÚinfolistŠszZipFile.infolistcCsLtdd|d�|jD]0}d|jdd…}td|j||jf|d�qdS)Nz%-46s %19s %12s)z File Namez Modified ZSize©rz%d-%02d-%02d %02d:%02d:%02dr"z %-46s %s %12d)r�r]rdrBrq)r�rrÅÚdaterrrÚprintdir�sÿ ÿzZipFile.printdirc Cs^d}|jD]N}z*| |jd¡�}| |¡r,q W5QRXWq tk rV|jYSXq dS)Nir`)r]rArBr>r)r�Z chunk_sizerÅÚfrrrÚtestzip˜s  zZipFile.testzipcCs$|j |¡}|dkr td|ƒ‚|S)Nz(There is no item named %r in the archive)r^rˆÚKeyError)r�r"ÚinforrrÚgetinfo¥s  ÿzZipFile.getinfocCs6|r t|tƒs tdt|ƒjƒ‚|r,||_nd|_dS)Núpwd: expected bytes, got %s)r´rØÚ TypeErrorrxrrÝ)r�rÝrrrÚ setpassword®s zZipFile.setpasswordcCs|jSrá)rkr§rrrrb·szZipFile.commentcCs^t|tƒstdt|ƒjƒ‚t|ƒtkrNddl}|jdtdd�|dt…}||_ d|_ dS)Nzcomment: expected bytes, got %srz3Archive comment is too long; truncating to %d bytesr©Ú stacklevelT) r´rØr£rxrr0ÚZIP_MAX_COMMENTÚwarningsÚwarnrkri)r�rbr¨rrrrb¼s  ÿÿ c Cs.| |d|¡�}| ¡W5QR£SQRXdS©Nr`©rAr>)r�r"rÝr<rrrr>Ész ZipFile.readF©Ú force_zip64c sJ|dkrtdƒ‚|r0t|tƒs0tdt|ƒjƒ‚|rD|dkrDtdƒ‚ˆjsRtdƒ‚t|tƒrb|}n,|dkr„t|ƒ}ˆj|_ ˆj |_ n ˆ  |¡}|dkr¤ˆj ||d�Sˆjr²tdƒ‚ˆjd 7_tˆj|jˆjˆj‡fd d „ƒ}�zL| t¡}t|ƒtk�rtd ƒ‚t t|¡}|ttk�r&td ƒ‚| |t¡}|t�rL| |t¡|jd@�r`t dƒ‚|jd@�rtt dƒ‚|t!d@�rŽ| "d¡} n | "d¡} | |j#k�r¶td|j#|fƒ‚|j$dk �rê| %¡|j&|j$k�rêtd|j#›d�ƒ‚|jd @} | �r|�sˆj'}|�st(d|ƒ‚nd}t)||||dƒWS| *¡‚YnXdS)N>r`razopen() requires mode "r" or "w"r¢raz'pwd is only supported for reading filesz2Attempt to use ZIP archive that was already closedr¬r rcsˆjSrá)rrr§rrr~ÿr-zZipFile.open..zTruncated file headerz Bad magic number for file headeré z$compressed patched data (flag bit 5)é@zstrong encryption (flag bit 6)r¤r£r|z/File name in directory %r and header %r differ.zOverlapped entries: z (possible zip bomb)z6File %r is encrypted, password required for extractionT)+r}r´rØr£rxrr<r rûrerþrfr¡Ú_open_to_writerrprrnrtrr>ÚsizeFileHeaderr0rrFr/r˜Ú _FH_SIGNATUREr™Ú_FH_FILENAME_LENGTHÚ_FH_EXTRA_FIELD_LENGTHrjrúÚ_FH_GENERAL_PURPOSE_FLAG_BITSrŠrcrsrZrprÝrørr ) r�r"r!rÝr­rÅZzef_fileZfheaderÚfnameZ fname_strZ is_encryptedrr§rrAÎs† ÿ     ÿ        ÿÿ ÿ ÿz ZipFile.opencCsæ|r|jstdƒ‚|jr tdƒ‚t|dƒs0d|_d|_d|_d|_|jt krZ|jdO_|j sn|jdO_|j szd|_ |jo�|p�|jdt k}|j r¦|j  |j¡|j  ¡|_| |¡d |_|j  | |¡¡d |_t|||ƒS) NzHforce_zip64 is True, but allowZip64 was False when opening the ZIP file.zzCan't write to the ZIP file while there is another write handle open on it. Close the first handle before opening another.rqrrré€gÍÌÌÌÌÌð?T)rhr}rr@rqrprorjrerr%rmr‘r<rDr\rZrnÚ _writecheckrirr¡rP)r�rÅr­ršrrrr°4s8 ÿ  ÿ  zZipFile._open_to_writecCs*|dkrt ¡}n t |¡}| |||¡Srá)rzÚgetcwdr¶Ú_extract_member)r�Úmemberr¼rÝrrrÚextract_s  zZipFile.extractcCsH|dkr| ¡}|dkr"t ¡}n t |¡}|D]}| |||¡q0dSrá)r˜rzr¹r¶rº)r�r¼ÚmembersrÝr-rrrÚ extractallls  zZipFile.extractallcCs^|j}|s(d}t |dt|ƒ¡}||_| |¡}dd„| |¡Dƒ}| dd„|Dƒ¡}|S)Nz:<>|"?*Ú_css|]}| d¡VqdS)Ú.N)Úrstrip©r•rbrrrÚ ‡sz1ZipFile._sanitize_windows_name..css|]}|r|VqdSrárrÂrrrrÉs)Ú!_windows_illegal_name_trans_tablermÚ maketransr0Ú translateÚsplitr2)rÁrÂÚpathsepÚtableZillegalrrrÚ_sanitize_windows_name}s zZipFile._sanitize_windows_namec sLt|tƒs| |¡}|j dtjj¡}tjjrB| tjjtjj¡}tj  |¡d}dtjj tjj f‰tjj  ‡fdd„|  tjj¡Dƒ¡}tjjdkr¦| |tjj¡}tj  ||¡}tj |¡}tj |¡}|rætj |¡sæt |¡| ¡�r tj |¡�st |¡|S|j||d��(}t|dƒ�}t ||¡W5QRXW5QRX|S) Nrwrr…c3s|]}|ˆkr|VqdSrárr©Zinvalid_path_partsrrrÃ�sÿz*ZipFile._extract_member..ú\)rÝrg)r´r r¡rBr|rzr¼r{r¿r¾ÚcurdirÚpardirr2rÇrÊr½ÚdirnameÚexistsÚmakedirsr‹rŽÚmkdirrAÚshutilÚ copyfileobj)r�r»Z targetpathrÝrÂZ upperdirsÚsourceÚtargetrrËrrºŒs2  &      ÿ zZipFile._extract_membercCs¢|j|jkr(ddl}|jd|jdd�|jdkr:tdƒ‚|jsHtdƒ‚t|jƒ|j sžd}t |j ƒt krpd}n|j tkr€d }n|jtkrŽd }|ržt|d ƒ‚dS) NrzDuplicate name: %rrr¥©rarbrcz&write() requires mode 'w', 'x', or 'a'z4Attempt to write ZIP archive that was already closedú Files countZFilesizez Zipfile sizeú would require ZIP64 extensions)rBr^r¨r©r!r}r<rürerhr0r]ÚZIP_FILECOUNT_LIMITrqr‘rnr )r�rÅr¨Úrequires_zip64rrrr¸¶s,  ÿ   ÿzZipFile._writecheckc CsP|jstdƒ‚|jrtdƒ‚tj|||jd�}| ¡rDd|_d|_n0|dk rT||_ n|j |_ |dk rl||_ n|j |_ | ¡�r|j �„|jrš|j |j¡|j ¡|_|j tkr¾|jdO_| |¡d|_|j |¡||j|j<|j | d¡¡|j ¡|_W5QRXnCan't write to ZIP archive while an open writing handle existsr®rrTFr?rai ) r<r}rr rÆrlr‹rprorerûrfrþrr%rDr\rZrnrrjr¸rir]r1r^rBrr¡rArÓrÔ)r�rBrÂrerþrÅÚsrcÚdestrrrrÍsFÿÿÿ      z ZipFile.writec Csøt|tƒr| d¡}t|tƒsxt|t t ¡¡dd…d�}|j|_|j|_ |j ddkrpd|_ |j dO_ q|d|_ n|}|j sŠt d ƒ‚|jr˜t d ƒ‚|dk r¦||_|dk r´||_ t|ƒ|_|j�*|j|d d ��}| |¡W5QRXW5QRXdS) Nr£r")rBrdrÇrwiýAr)r·rÜz?Can't write to ZIP archive while an open writing handle exists.ra)r!)r´rmr¥r r¹rºrûrerþrfrBrmr<r}rr0rqrrAr)r�Zzinfo_or_arcnamerVrerþrÅrÞrrrÚwritestrþs:   ÿÿÿ zZipFile.writestrcCs | ¡dSrárwr§rrrÚ__del__'szZipFile.__del__c Cs||jdkrdS|jrtdƒ‚zB|jdkr\|jr\|j�"|jrJ|j |j ¡|  ¡W5QRXW5|j}d|_| |¡XdS)NzvCan't close the ZIP file while there is an open writing handle on it. Close the writing handle before closing the zip.r×) r<rr}rtr!rirr%rDr\Ú_write_end_recordrrrrr +s z ZipFile.closecCs‚|jD�]D}|j}|ddd>|dd>B|dB}|dd>|d d>B|ddB}g}|jtksr|jtkr”| |j¡| |j¡d }d }n |j}|j}|jtkr¼| |j¡d }n|j}|j} d} |�r t| d ƒ} t j d d t |ƒddt |ƒf|žŽ| } t } |j tk�r$tt| ƒ} n|j tk�r:tt| ƒ} t| |jƒ} t| |jƒ} zZ| ¡\} }t   tt| |j| |j||j |||j||t | ƒt | ƒt |jƒd|j|j|¡}Wnltk �rttt| |j| |j|j |j |||j||t |j!ƒt | ƒt |jƒd|j|j|ft"j#d�‚YnX|j$ %|¡|j$ %| ¡|j$ %| ¡|j$ %|j¡q|j$ &¡}t |jƒ}||j'}|j'}d}|t(k�r†d}n|tk�r–d}n|tk�r¤d}|�r$|j)�s¾t*|dƒ‚t   t+t,ddddd||||¡ }|j$ %|¡t   t-t.d|d¡}|j$ %|¡t/|dƒ}t/|d ƒ}t/|d ƒ}t   t0t1dd||||t |j2ƒ¡ }|j$ %|¡|j$ %|j2¡|j3dk�rt|j$ 4¡|j$ 5¡dS)Nrrvr$rr!rrr&r r�)rr,ÚQrršrØzCentral directory offsetzCentral directory sizerÙé,rrrc)6r]rdrqr‘rpr1rnr3r8rFr’r0r”rerr_r•rr–rhrWr—r†rˆrgrirorbrlrmÚDeprecationWarningr�rjrBr~Ústderrr<rrZr\rÚrhr rJrKrGrHrHr]r\rkr!Útruncaterì)r�rÅr›rœr�r3rqrprnZ extra_dataržrhrWrBrjr‘Zpos2Z centDirCountZ centDirSizeZ centDirOffsetrÛZ zip64endrecZ zip64locrecrUrrrráAs $$ ÿ      þþþ       ùúú         ÿý þ    þ   zZipFile._write_end_recordcCs&|jd8_|js"|js"| ¡dS©Nr)rprnr rrrrrt©s zZipFile._fpclose)N)N)r`N)F)NN)NNN)NNN)NN)#rrrr<rÄrr‚rvr{r�rsr˜r™rœržr¡r¤r_rbÚsetterr>rAr°r¼r¾rÊrÊrºr¸rrßràr rártrrrrr ªsRÿÿ ZT      f +  *ÿ 2ÿ )hc@s0eZdZdeddfdd„Zd dd „Zd d „ZdS) r r`TrÇcCstj|||||d�||_dS)N)r!rûru)r r‚Ú _optimize)r�rr!rûruÚoptimizerrrr‚³s ÿzPyZipFile.__init__r…NcCs¼t |¡}|rD||ƒsD|jr@tj |¡r,dnd}td||fƒdStj |¡\}}tj |¡�rhtj |d¡}tj |¡�r¸|r�d||f}n|}|jr¨td|d|ƒ|  |dd …|¡\}} |jrÐtd | ƒ|  || ¡t t  |¡ƒ} |   d¡| D]¼} tj || ¡} tj | ¡\} }tj | ¡�rRtj tj | d¡¡�r´|j| ||d �qø|d krø|�r~|| ƒ�s~|jrøtd | ƒqø|  | dd …|¡\}} |j�r¨td | ƒ|  || ¡qøn®|j�rÊtd|ƒt t  |¡ƒD]Œ} tj || ¡} tj | ¡\} }|d k�rØ|�r,|| ƒ�s,|j�rØtd | ƒ�qØ|  | dd …|¡\}} |j�rVtd | ƒ|  || ¡�qØnP|d d…d k�r‚tdƒ‚|  |dd …|¡\}} |j�r¬td| ƒ|  || ¡dS)Nr¼rz%s %r skipped by filterfuncz __init__.pyú%s/%szAdding package inÚasréýÿÿÿZAdding)Ú filterfuncú.pyzfile %r skipped by filterfunczAdding files from directoryz.Files added with writepy() must end with ".py"z Adding file)rzr¶rjr¼rŽr�rÇr2ÚisfileÚ _get_codenamerr�ÚlistdirÚremoveÚsplitextÚwritepyrø)r�ÚpathnameÚbasenamerîZlabelÚdirr"Zinitnamer¶rÂZdirlistrBr¼ÚrootZextrrrrõ¹s€     ÿ ÿ    ÿ ÿ zPyZipFile.writepyc sd‡fdd„ }|d}|d}tjj|dd�}tjj|dd�}tjj|d d�}ˆjdk�r\tj |¡rˆt |¡jt |¡jkrˆ|} } nÒtj |¡r¶t |¡jt |¡jkr¶|} |} n¤tj |¡rät |¡jt |¡jkrä|} |} nvtj |¡�rt |¡jt |¡jk�r|} |} nD||ƒ�rRt j j d k�r4|} nt j j dk�rH|} n|} |} n|} } n’ˆjd k�rr|} |} n<|} ˆjdk�rˆ|} n&ˆjd k�rš|} nd   ˆj¡} t | ƒ‚tj | ¡�rÖt | ¡jt |¡jk�sî||ˆjd ��sî|} } tj | ¡d} |�rd || f} | | fS)NrÇc sfddl}ˆjrtd|ƒz|j|d|d�Wn4|jk r`}zt|jƒWY¢dSd}~XYnXdS)NrZ CompilingT)ÚdoraiserêF)Ú py_compilerjr�ÚcompileÚPyCompileErrorÚmsg)rrêrûÚerrr§rrÚ_compiles  z)PyZipFile._get_codename.._compilerïz.pycr…)Ú optimizationrrrz"invalid value for 'optimize': {!r})rêrë)rÇ)Ú importlibÚutilÚcache_from_sourcerérzr¼rðr‰r»r~r’rêÚformatr}rÇ) r�rör÷rZfile_pyZfile_pycZ pycache_opt0Z pycache_opt1Z pycache_opt2rÂr¶rþZ archivenamerr§rrñ sj   ÿ  ÿ ÿÿ      ÿ zPyZipFile._get_codename)r…N)rrrrr‚rõrñrrrrr °s ÿ  RcCst t|ƒdd¡Srç)Ú itertoolsÚisliceÚ _ancestry)r¼rrrÚ_parents^sr ccs2| tj¡}| tj¡r.|Vt |¡\}}q dSrá)rÁÚ posixpathr{rÇ)r¼Útailrrrrqs  rcCst t|ƒj|¡Srá)rÚ filterfalseÚsetÚ __contains__)ZminuendZ subtrahendrrrÚ _difference�srcsDeZdZedd„ƒZ‡fdd„Zdd„Zdd„Zed d „ƒZ ‡Z S) Ú CompleteDirscCs.tj tt|ƒ¡}dd„|Dƒ}tt||ƒƒS)Ncss|]}|tjVqdSrá)r r{)r•rÞrrrrász-CompleteDirs._implied_dirs..)rÚchainÚ from_iterablerÜr Ú_deduper)ÚnamesÚparentsZas_dirsrrrÚ _implied_dirsžszCompleteDirs._implied_dirscs tt|ƒ ¡}|t| |¡ƒSrá)rJrr˜r^r)r�rrKrrr˜¤szCompleteDirs.namelistcCs t| ¡ƒSrá)r r˜r§rrrÚ _name_set¨szCompleteDirs._name_setcCs,| ¡}|d}||ko||k}|r(|S|S©Nrw)r)r�r"rrÏZ dir_matchrrrÚ resolve_dir«szCompleteDirs.resolve_dircCsNt|tƒr|St|tƒs ||ƒSd|jkr.t}| |¡}t|ƒ t|ƒ¡|Srª)r´rr r!Ú__new__ÚvarsÚupdate)rÁrÕÚresrrrÚmakeµs    zCompleteDirs.make) rrrÚ staticmethodrr˜rrrÊrrOrrrKrr˜s   rcs(eZdZ‡fdd„Z‡fdd„Z‡ZS)Ú FastLookupc s:t t¡�|jW5QR£SQRXtt|ƒ ¡|_|jSrá)Ú contextlibÚsuppressr*Z_FastLookup__namesrJr r˜r§rKrrr˜Ïs zFastLookup.namelistc s:t t¡�|jW5QR£SQRXtt|ƒ ¡|_|jSrá)r!r"r*Z_FastLookup__lookuprJr rr§rKrrrÕs zFastLookup._name_set)rrrr˜rrOrrrKrr Ês r c@sšeZdZdZd"dd„Zedd„ƒZedd„ƒZd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zdd„ZeZedd „ƒZd!S)#rz>{self.__class__.__name__}({self.root.filename!r}, {self.at!r})r…cCst |¡|_||_dSrá)r rrùÚat)r�rùr#rrrr‚ s z Path.__init__cCst |jj|j¡Srá)Ú functoolsÚpartialrùrAr#r§rrrrA# sz Path.opencCst |j d¡¡Sr)r r÷r#rÁr§rrrr"' sz Path.namec Os6| ¡�$}tj|f|ž|Ž ¡W5QR£SQRXdSrá)rAr4Ú TextIOWrapperr>)r�ÚargsÚkwargsÚstrmrrrÚ read_text+ s zPath.read_textc Cs(| ¡�}| ¡W5QR£SQRXdSrár«)r�r)rrrÚ read_bytes/ s zPath.read_bytescCst |j d¡¡|j d¡kSr)r rÏr#rÁ)r�r¼rrrÚ _is_child3 szPath._is_childcCs t|j|ƒSrá)rrù)r�r#rrrÚ_next6 sz Path._nextcCs|j p|j d¡Sr)r#Úendswithr§rrrr‹9 sz Path.is_dircCs | ¡ Srá)r‹r§rrrÚis_file< sz Path.is_filecCs|j|j ¡kSrá)r#rùrr§rrrrÐ? sz Path.existscCs.| ¡stdƒ‚t|j|j ¡ƒ}t|j|ƒS)NzCan't listdir a file)r‹r}rÜr-rùr˜Úfilterr,)r�ZsubsrrrÚiterdirB sz Path.iterdircCst |jj|j¡Srá)r r2rùrBr#r§rrrÚ__str__H sz Path.__str__cCs|jj|d�S)Nr§)Ú _Path__reprrr§rrrr�K sz Path.__repr__cCs t |j|¡}| |j |¡¡Srá)r r2r#r-rùr)r�ÚaddÚnextrrrÚjoinpathN sz Path.joinpathcCs(t |j d¡¡}|r|d7}| |¡Sr)r rÏr#rÁr-)r�Z parent_atrrrÚparentT sz Path.parentN)r…)rrrr3r‚r_rAr"r*r+r,r-r‹r/rÐr1r2r�r6Ú __truediv__r7rrrrrÜs(A   c sÆddl}d}|j|d�}|jdd�}|jdddd d �|jd d d ddd�|jdddddd�|jddddd �| |¡}|jdk rÄ|j}t|dƒ�}| ¡}W5QRX|rºtd  |¡ƒtdƒnþ|j dk rô|j }t|dƒ�}|  ¡W5QRXnÎ|j dk �r,|j \}}t|dƒ�}|  |¡W5QRXn–|jdk �rÂ|j d¡} |j} ‡fdd„‰t| dƒ�\}| D]P} tj | ¡} | �s�tj tj | ¡¡} | dtjtjfk�r¨d} ˆ|| | ƒ�qfW5QRXdS) Nrz3A simple command-line interface for zipfile module.)Ú descriptionT)Zrequiredz-lz--listú zShow listing of a zipfile)ÚmetavarÚhelpz-ez --extractr)r:z zExtract zipfile into target dir)Únargsr;r<z-cz--createú+)zzzCreate zipfile from sourcesz-tz--testzTest if a zipfile is validr`z.The following enclosed file is corrupted: {!r}z Done testingcsptj |¡r| ||t¡nPtj |¡rl|r8| ||¡tt |¡ƒD]$}ˆ|tj ||¡tj ||¡ƒqFdSrá) rzr¼rðrrrŽr�ròr2)rXr¼ÚzippathZnm©ÚaddToZiprrrA„ s    ÿzmain..addToZiprar…)ÚargparseÚArgumentParserZadd_mutually_exclusive_groupÚ add_argumentÚ parse_argsZtestr ržr�rr^rœr¼r¾ZcreateÚpoprzr¼r÷rÏrÍrÎ) r'rBr9ÚparserÚgrouprÝrXZbadfilerÍZzip_nameÚfilesr¼r?rr@rÚmain\ s\   ÿ þ þ ÿ             rJÚ__main__)N)N)ŽZbinasciir$Úimportlib.utilrr4rrzr rÓr‰rFr~rqr¹r!r÷rÑÚ ImportErrorrùræÚ__all__Ú Exceptionrr rrr‘rÚr§rrrrr€r”r•r–rŽr]r\r“r[rLrMrNrOrPrQrRrar‚rƒr†rˆr…r‡Z_CD_CREATE_VERSIONZ_CD_CREATE_SYSTEMZ_CD_EXTRACT_VERSIONZ_CD_EXTRACT_SYSTEMZ _CD_FLAG_BITSZ_CD_COMPRESS_TYPEZ_CD_TIMEZ_CD_DATEZ_CD_CRCZ_CD_COMPRESSED_SIZEZ_CD_UNCOMPRESSED_SIZEr‰r‹rŒZ_CD_DISK_NUMBER_STARTZ_CD_INTERNAL_FILE_ATTRIBUTESZ_CD_EXTERNAL_FILE_ATTRIBUTESr�r˜r™r±r²Z_FH_EXTRACT_VERSIONZ_FH_EXTRACT_SYSTEMrµZ_FH_COMPRESSION_METHODZ_FH_LAST_MOD_TIMEZ_FH_LAST_MOD_DATEZ_FH_CRCZ_FH_COMPRESSED_SIZEZ_FH_UNCOMPRESSED_SIZEr³r´rGrHrErJrKrIZ_CD64_SIGNATUREZ_CD64_DIRECTORY_RECSIZEZ_CD64_CREATE_VERSIONZ_CD64_EXTRACT_VERSIONZ_CD64_DISK_NUMBERZ_CD64_DISK_NUMBER_STARTZ_CD64_NUMBER_ENTRIES_THIS_DISKZ_CD64_NUMBER_ENTRIES_TOTALZ_CD64_DIRECTORY_SIZEZ_CD64_OFFSET_START_CENTDIRr[ZStructr.r8r=r rXr9Úobjectr rÛrÍrßràrír‡rürÿrrrr5rrPr r r rÚdictÚfromkeysrrrr rrJrrrrrÚsj      ý       +=s&ï &AN /2 =