ROOTPLOIT
Server: LiteSpeed
System: Linux server71.web-hosting.com 4.18.0-513.18.1.lve.el8.x86_64 #1 SMP Thu Feb 22 12:55:50 UTC 2024 x86_64
User: niphet (1079)
PHP: 5.3.29
Disabled: NONE
Upload Files
File: //lib64/python3.6/__pycache__/zipfile.cpython-36.opt-2.pyc
3

i482@sddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
yddlZWnek
rxddl
ZYnXyddlZejZWnek
rdZe
jZYnXyddlZWnek
rdZYnXyddlZWnek
rdZYnXdddddddd	d
ddd
gZGdddeZGdd
d
eZeZZdeZdgZdiZdZdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%e	j&e$Z'dZ(dZ)dZ*dZ+dZ,dZ-d Z.d!Z/dZ0d"Z1d#Z2d$Z3e	j&e2Z4dZ5dZ6dZ7dZ8dZ9dZ:d Z;d!Z<dZ=d"Z>d%Z?d&Z@dZAd'ZBdZCd(ZDdZEd)ZFd*ZGd+ZHd,ZIe	j&eHZJdZKdZLdZMdZNdZOdZPd ZQd!ZRdZSd"ZTd%ZUd&ZVd-ZWd.ZXe	j&eWZYd/ZZd0Z[e	j&eZZ\dZ]dZ^dZ_dZ`dZadZbd Zcd!ZddZed"Zfd1Zge	jhd2Zid3d4Zjd5d6Zkd7d	Zld8d9Zmd:d;ZnGd<d
d
eoZpGd=d>d>ZqGd?d@d@ZrGdAdBdBZsdCdDdEdEdEdEdFdGdHdIdFdJdKdLdMdNdOdPZtdQdRZudSdTZvdUdVZwGdWdXdXZxGdYdZdZZyGd[d\d\ejzZ{Gd]d^d^ejzZ|Gd_ddZ}Gd`dde}Z~djdadbZedckredS)kN
BadZipFile
BadZipfileerror
ZIP_STOREDZIP_DEFLATED	ZIP_BZIP2ZIP_LZMA
is_zipfileZipInfoZipFile	PyZipFileLargeZipFilec@seZdZdS)rN)__name__
__module____qualname__rr/usr/lib64/python3.6/zipfile.pyr+sc@seZdZdS)r
N)rrrrrrrr
/s-.?s<4s4H2LHsPK	z<4s4B4HL2L5H2LsPK

z<4s2B4HL2L2HsPKz<4sLQLsPKz
<4sQ2H2L4QsPKiPKz<HHc
Cstj}d}g}d}}xf|dt|kr|||||d\}}|d|}	||krv||krn|j||||	}d}|	}qW|s|Sdj|S)NFrrT)_EXTRA_FIELD_STRUCTunpacklenappendjoin)
extraZxidsr,ZmodifiedbufferstartiZxidZxlenjrrr_strip_extras r5cCs*yt|rdSWntk
r$YnXdS)NTF)_EndRecDataOSError)fprrr_check_zipfilesr9cCsVd}y8t|drt|d}nt|d}t|}WdQRXWntk
rPYnX|S)NFread)r8rb)hasattrr9openr7)filenameresultr8rrrr	s
cCsy|j|tdWntk
r(|SX|jt}t|tkrD|Stjt|\}}}}|tkrd|S|dkst|dkr|t	d|j|tt
d|jt
}t|t
kr|Stjt|\
}}}	}
}}}
}}}|tkr|S||t
<||t<||t<|
|t<||t<||t<||t<|S)Nrrrz3zipfiles that span multiple disks are not supported)seeksizeEndCentDir64Locatorr7r:r-structr,structEndArchive64LocatorstringEndArchive64LocatorrsizeEndCentDir64structEndArchive64stringEndArchive64_ECD_SIGNATURE_ECD_DISK_NUMBER_ECD_DISK_START_ECD_ENTRIES_THIS_DISK_ECD_ENTRIES_TOTAL	_ECD_SIZE_ECD_OFFSET)fpinoffsetendrecdataZsigZdisknoZreloffZdisksZszcreate_versionZread_versionZdisk_numZdisk_dirZdircountZ	dircount2ZdirsizeZ	diroffsetrrr
_EndRecData64s6

 rTc	Csf|jdd|j}y|jtdWntk
r:dSX|j}t|tkr|ddtkr|dddkrtjt	|}t
|}|jd|j|tt|t|St
|d	td}|j|d|j}|jt}|dkrb|||t}t|tkrdSt
tjt	|}|t}||t|t|}|j||j||t|||||SdS)
Nrrrsr*rri)r@tellsizeEndCentDirr7r:r-stringEndArchiverBr,structEndArchivelistr.rTmaxrfind_ECD_COMMENT_SIZE)	rOZfilesizerRrQZmaxCommentStartr2ZrecDataZcommentSizecommentrrrr6s>



r6c@sReZdZd(Zd*ddZddZd+ddZd d!Zd"d#Ze	d,d$d%Z
d&d'ZdS)-r

orig_filenamer>	date_time
compress_typer^r0
create_systemrSextract_versionreserved	flag_bitsvolume
internal_attr
external_attr
header_offsetCRC
compress_size	file_size	_raw_time_end_offsetNoNamerrcCs||_|jtd}|dkr(|d|}tjdkrJtj|krJ|jtjd}||_||_|ddkrjtdt	|_
d|_d|_t
jdkrd|_nd|_t|_t|_d|_d|_d|_d|_d|_d|_dS)Nr/iz+ZIP does not support timestamps before 1980r*Zwin32r)r_findchrossepreplacer>r`
ValueErrorrrar^r0sysplatformrbDEFAULT_VERSIONrSrcrdrerfrgrhrn)selfr>r`Z	null_byterrr__init__Xs0
zZipInfo.__init__cCsd|jj|jfg}|jtkr8|jdtj|j|j|jd?}|jd@}|rd|jdt	j
||rv|jd||j}|s|jr|jd|j|s|j
r|jtks|j|j
kr|jd|j
|jd	d
j|S)Nz<%s filename=%rz compress_type=%sriz filemode=%rz external_attr=%#xz
 file_size=%rz compress_size=%r>)	__class__rr>rarr.compressor_namesgetrhstatfilemodeis_dirrlrkr/)r{r?hiloisdirrrr__repr__s(




zZipInfo.__repr__NcCs||j}|ddd>|dd>B|dB}|dd>|d	d>B|ddB}|jd
@rfd}}}n|j}|j}|j}|j}d}	|dkr|tkp|tk}|rd}
|tj|
dtj	|
d	||}|tks|tkr|st
dd
}d
}t}	|jt
krtt|	}	n|jtkrtt|	}	t|	|j|_t|	|j|_|j\}}tjtt|j|j||j|||||t|t|
}
|
||S)Nrir#rr rrr%rrz<HHQQz'Filesize would require ZIP64 extensionsl)r`rerjrkrlr0ZIP64_LIMITrBpackcalcsizer

ZIP64_VERSIONrarr[
BZIP2_VERSIONrLZMA_VERSIONrcrS_encodeFilenameFlagsstructFileHeaderstringFileHeaderrdr-)r{zip64dtdosdatedostimerjrkrlr0min_versionfmtr>reheaderrrr
FileHeadersF$$



zZipInfo.FileHeadercCs>y|jjd|jfStk
r8|jjd|jdBfSXdS)Nasciizutf-8i)r>encodereUnicodeEncodeError)r{rrrrszZipInfo._encodeFilenameFlagscCs(|j}tj}xt|dkr"|d|dd\}}|dkr|dkrZ|d|dd}nV|dkrv|d|dd	}n:|d
kr|d|dd}n|d
krf}ntd||fd
}|jdkr|||_|d7}|jdkr|||_|d7}|jdkr|j}|||_|d7}||dd}qWdS)Nrz<HHrz<QQQrz<QQrrz<Qrrz"Corrupt extra field %04x (size=%d))rr)r0rBr,r-rrlrkri)r{r0r,tplnZcountsidxoldrrr_decodeExtras4





zZipInfo._decodeExtracCst|tjrtj|}tj|}tj|j}tj|j	}|dd}|dkrP|}tj
jtj
j|d}x$|dtj
tjfkr|dd}qjW|r|d7}|||}|jd@d>|_|rd|_|jdO_n|j|_|S)Nrr!rrqir)
isinstancertPathLikefspathrS_ISDIRst_modetime	localtimest_mtimepathnormpath
splitdriverualtseprhrlst_size)clsr>arcnamestrmtimer`zinforrr	from_files(



zZipInfo.from_filecCs|jddkS)Nrrq)r>)r{rrrrszZipInfo.is_dir)r_r>r`rar^r0rbrSrcrdrerfrgrhrirjrkrlrmrnrprrrrr)ror)N)N)rrr	__slots__r|rrrrclassmethodrrrrrrr
>s8
+
.$!c@s8eZdZddZdZddZddZdd	Zd
dZdS)
_ZipDecryptercCshd}dgd}xTtdD]H}|}x6tdD]*}|d@rH|d?d@|A}q*|d?d@}q*W|||<qW|S)Nl q[rrri)range)Zpolytabler3crcr4rrr_GenerateCRCTable%s
z_ZipDecrypter._GenerateCRCTableNcCs|d?d@|j||Ad@AS)Nri)crctable)r{Zchrrrr_crc329sz_ZipDecrypter._crc32cCsBtjdkrtjt_d|_d|_d|_x|D]}|j|q,WdS)NixV4igE#ixV4)rrrkey0key1key2_UpdateKeys)r{pwdprrrr|=s


z_ZipDecrypter.__init__cCsX|j||j|_|j|jd@d@|_|jddd@|_|j|jd?d@|j|_dS)Nrlirr)rrrr)r{crrrrFsz_ZipDecrypter._UpdateKeyscCs0|jdB}|||dAd?d@A}|j||S)Nrrrr)rr)r{rkrrr__call__Ls

z_ZipDecrypter.__call__)	rrrrrrr|rrrrrrrs
	rc@s,eZdZddZddZddZddZd	S)
LZMACompressorcCs
d|_dS)N)_comp)r{rrrr|WszLZMACompressor.__init__cCsFtjdtji}tjtjtjtj|gd|_tjdddt	||S)Nid)filtersz<BBHr#r)
lzmaZ_encode_filter_propertiesFILTER_LZMA1r
FORMAT_RAW_decode_filter_propertiesrrBrr-)r{Zpropsrrr_initZszLZMACompressor._initcCs*|jdkr|j|jj|S|jj|S)N)rrcompress)r{rRrrrras
zLZMACompressor.compresscCs&|jdkr|j|jjS|jjS)N)rrflush)r{rrrrfs
zLZMACompressor.flushN)rrrr|rrrrrrrrUsrc@seZdZddZddZdS)LZMADecompressorcCsd|_d|_d|_dS)Nr*F)_decomp_unconsumedeof)r{rrrr|nszLZMADecompressor.__init__cCs|jdkr|j|7_t|jdkr*dStjd|jdd\}t|jd|krXdStjtjtjtj	|jdd|gd|_|jd|d}|`|jj
|}|jj|_|S)Nrr*z<Hr)r)rrr-rBr,rrrrr
decompressr)r{rRZpsizer?rrrrss

zLZMADecompressor.decompressN)rrrr|rrrrrrlsrZstoreZshrinkreduceZimplodetokenizeZdeflateZ	deflate64Zbzip2rZterseZlz77ZwavpackZppmd)rrrrrr r!r"rr#r$rrr)abcCsX|tkr
nJ|tkr tsTtdn4|tkr6tsTtdn|tkrLtsTtdntddS)Nz.Compression requires the (missing) zlib modulez-Compression requires the (missing) bz2 modulez.Compression requires the (missing) lzma modulez(That compression method is not supported)	rrzlibRuntimeErrorrbz2rrNotImplementedError)compressionrrr_check_compressionsrcCs@|tkrtjtjtjdS|tkr*tjS|tkr8t	SdSdS)Nr'i)
rrZcompressobjZZ_DEFAULT_COMPRESSIONZDEFLATEDrrZ
BZ2Compressorrr)rarrr_get_compressors
rcCsn|tkrdS|tkrtjdS|tkr.tjS|tkr<tSt	j
|}|r\td||fntd|fdS)Nr'zcompression type %d (%s)zcompression type %di)rrrZ
decompressobjrrZBZ2Decompressorrrrrr)raZdescrrrr_get_decompressors

rc@s0eZdZddZdddZdddZd	d
ZdS)_SharedFilecCs2||_||_||_||_||_|j|_|j|_dS)N)_file_pos_close_lock_writingseekablerV)r{fileposcloselockwritingrrrr|sz_SharedFile.__init__rc	CsB|j2|jrtd|jj|j|jj|_|jSQRXdS)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.)rrrwrr@rrV)r{rPwhencerrrr@sz_SharedFile.seekrc	CsL|j<|jrtd|jj|j|jj|}|jj|_|SQRXdS)NzyCan't read from the ZIP file while there is an open writing handle on it. Close the writing handle before trying to read.)rrrwrr@rr:rV)r{nrRrrrr:sz_SharedFile.readcCs$|jdk	r |j}d|_|j|dS)N)rr)r{fileobjrrrrs
z_SharedFile.closeN)rr)r)rrrr|r@r:rrrrrrs	


rc@s4eZdZddZddZddZddZd	d
ZdS)	_TellablecCs||_d|_dS)Nr)r8rP)r{r8rrrr|sz_Tellable.__init__cCs|jj|}|j|7_|S)N)r8writerP)r{rRrrrrrsz_Tellable.writecCs|jS)N)rP)r{rrrrVsz_Tellable.tellcCs|jjdS)N)r8r)r{rrrrsz_Tellable.flushcCs|jjdS)N)r8r)r{rrrrsz_Tellable.closeN)rrrr|rrVrrrrrrrs
rcseZdZd%ZdZd&Zd'ddZd	d
Zd)ddZd*d
dZ	ddZ
d,ddZddZddZ
ddZddZfddZddZd-d d!Zd"d#ZZS).
ZipExtFilerrirNFcCs||_||_||_|j|_|j|_|j|_t	|j|_
d|_d|_d|_
d|_|jdk	rf|jd8_||_|j|_t|dr|j|_td|_nd|_d|_y4|jr|j|_|j|_|j|_|j|_d|_Wntk
rYnXdS)NFr*rrrjT)_fileobj
_decrypter_close_fileobjra_compress_typerk_compress_leftrl_leftr
_decompressor_eof_readbuffer_offsetnewlinesmoder>namer<rj
_expected_crccrc32_running_crc	_seekablerrV_orig_compress_start_orig_compress_size_orig_file_size_orig_start_crcAttributeError)r{rr	zipinfoZ	decrypterZ
close_fileobjrrrr|s:



zZipExtFile.__init__cCsvd|jj|jjfg}|jsX|jd|j|jf|jtkrb|jdt	j
|j|jn
|jd|jddj|S)Nz<%s.%sz name=%r mode=%rz compress_type=%sz	 [closed]r}r~)rrrclosedr.r
r	rrrrr/)r{r?rrrr?s


zZipExtFile.__repr__cCsL|dkr>|jjd|jd}|dkr>|j|j|}||_|Stjj||S)Nr
r)rrrrioBufferedIOBasereadline)r{limitr3linerrrrMszZipExtFile.readlinecCsr|t|j|jkr\|j|}t||jkrJ||j|jd|_d|_n|jt|8_|j|j|jdS)Nri)r-rrr:)r{rchunkrrrpeek]s
zZipExtFile.peekcCsdS)NTr)r{rrrreadablejszZipExtFile.readablecCs|dks|dkrL|j|jd}d|_d|_x|jsF||j|j7}q.W|S||j}|t|jkr~|j|j|}||_|S|t|j}|j|jd}d|_d|_x^|dko|jr|j|}|t|kr||_||_||d|7}P||7}|t|8}qW|S)Nrr*)rrr_read1MAX_Nr-)r{rbufendrRrrrr:ms4

zZipExtFile.readcCs@|jdkrdSt||j|_|jr<|j|jkr<td|jdS)NzBad CRC-32 for file %r)rrr
rrr
)r{newdatarrr_update_crcs

zZipExtFile._update_crccCs|dks|dkrV|j|jd}d|_d|_x$|jsP|j|j}|r.||7}Pq.W|S||j}|t|jkr|j|j|}||_|S|t|j}|j|jd}d|_d|_|dkrxN|js
|j|}|t|kr||_||_||d|7}P|r||7}PqW|S)Nrr*)rrrrr r-)r{rr!rRr"rrrread1s>



zZipExtFile.read1cCs"|js|dkrdS|jtkrH|jj}|t|krR||j|t|7}n
|j|}|jtkrj|jdk|_nx|jtkrt	||j
}|jj||}|jjp|jdko|jj|_|jr||jj
7}n |jj|}|jjp|jdk|_|d|j}|jt|8_|jdkrd|_|j||S)Nrr*T)rrrrZunconsumed_tailr-_read2rrr[
MIN_READ_SIZErrrrr$)r{rrRrrrrs2





zZipExtFile._read1cCsj|jdkrdSt||j}t||j}|jj|}|jt|8_|sLt|jdk	rft	t
|j|}|S)Nrr*)rr[r'minrr:r-EOFErrorrbytesmap)r{rrRrrrr&s

zZipExtFile._read2c
s&z|jr|jjWdtjXdS)N)rrrsuper)r{)rrrrszZipExtFile.closecCs|jS)N)r)r{rrrrszZipExtFile.seekablercCs,|jstjd|j}|dkr&|}n.|dkr8||}n|dkrL|j|}ntd||jkrd|j}|dkrpd}||}||j}|dkr|t|jkr||_d}nR|dkr|j	j
|j|j|_
|j|_|j|_d|_d|_tj|j|_d|_|}x,|dkr"t|j|}|j|||8}qW|jS)Nz!underlying stream is not seekablerrrzCwhence must be os.SEEK_SET (0), os.SEEK_CUR (1), or os.SEEK_END (2)r*F)rrUnsupportedOperationrVrrwrr-rrr@rrr
rrrZzipfilerrrrr(
MAX_SEEK_READr:)r{rPrZcurr_posZnew_posZread_offsetZbuff_offsetZread_lenrrrr@sD




zZipExtFile.seekcCs0|jstjd|j|jt|j|j}|S)Nz!underlying stream is not seekable)rrr-rrr-rr)r{ZfileposrrrrV*s
zZipExtFile.telli@i)NFr)r)rr)r)r)rrrr r'r.r|rrrrr:r$r%rr&rrr@rV
__classcell__rr)rrrs$
*



!
%$
/rcs@eZdZddZeddZddZddZfd	d
ZZ	S)
_ZipWriteFilecCs4||_||_||_t|j|_d|_d|_d|_dS)Nr)	_zinfo_zip64_zipfilerra_compressor
_file_size_compress_size_crc)r{zfrrrrrr|2sz_ZipWriteFile.__init__cCs|jjS)N)r4r8)r{rrrr;sz_ZipWriteFile._fileobjcCsdS)NTr)r{rrrwritable?sz_ZipWriteFile.writablecCsf|jrtdt|}|j|7_t||j|_|jrV|jj|}|jt|7_|j	j
||S)NzI/O operation on closed file.)rrwr-r6rr8r5rr7rr)r{rRnbytesrrrrBsz_ZipWriteFile.writecsX|jr
dStj|jrN|jj}|jt|7_|jj||j|j	_
n
|j|j	_
|j|j	_
|j|j	_|j	jd@r|jrdnd}|jjtj|t|j	j
|j	j
|j	j|jj|j_nn|js|jtkrtd|jtkrtd|jj|j_|jj|j	j|jj|j	j|j|jj|jjd|j_|jjj|j	|j	|jj|j	j <dS)Nrz<LLQQz<LLLLz+File size unexpectedly exceeded ZIP64 limitz1Compressed size unexpectedly exceeded ZIP64 limitF)!rr,rr5rr7r-rrr2rkr6r8rjrlrer3rBr
_DD_SIGNATURErVr4	start_dirrrr@rirrfilelistr.
NameToInfor>)r{r!r)rrrrNs8






z_ZipWriteFile.close)
rrrr|propertyrr:rrr0rr)rrr11s
	r1c@seZdZdZdZdedfddZddZdd	Zd
dZ	dd
Z
ddZddZd;ddZ
ddZddZddZeddZejddZd<ddZd=dd d!d"Zd>d#d$Zd?d%d&Zd@d'd(Zed)d*Zd+d,Zd-d.ZdAd/d0ZdBd1d2Zd3d4Zd5d6Z d7d8Z!d9d:Z"dS)CrNrTcCsF|dkrtdt|||_d|_d|_i|_g|_||_||_d|_	d|_
t|tj
rdtj|}t|trd|_||_d	d
ddd
d
dd}||}x^ytj|||_Wn(tk
r||kr||}wYnXPqWnd|_||_t|dd|_d|_tj|_d|_d|_y|dkr*|jn|dkrd|_y|jj|_Wn2t tfk
r|t!|j|_d|_d|_Yn6Xy|jj"|jWn t tfk
rd|_YnXnf|dkry|j|jj"|jWn6t#k
r|jj"ddd|_|jj|_YnXntdWn$|j}d|_|j$|YnXdS)NrAwxaz+ZipFile requires mode 'r', 'w', 'x', or 'a'Frr*r;zw+bzx+bzr+bwbZxb)rArBrCrDzr+bzw+bzx+brr
Trz"Mode must be 'r', 'w', 'x', or 'a')rArBrCrD)rBrC)%rwr_allowZip64
_didModifydebugr?r>rr	r_commentrrtrrstr_filePassedr>rr=r8r7getattr_fileRefCnt	threadingRLockrrr_RealGetContentsrVr=rrr@r_fpclose)r{rr	r
allowZip64ZmodeDictrr8rrrr|s







zZipFile.__init__cCs|S)Nr)r{rrr	__enter__szZipFile.__enter__cCs|jdS)N)r)r{typevalue	tracebackrrr__exit__szZipFile.__exit__cCsd|jj|jjfg}|jdk	rd|jr8|jd|jn|jdk	rR|jd|j|jd|jn
|jd|jddj|S)Nz<%s.%sz file=%rz filename=%rz mode=%rz	 [closed]r}r~)	rrrr8rKr.r>r	r/)r{r?rrrrs



zZipFile.__repr__cCs|j}yt|}Wntk
r.tdYnX|s<td|jdkrNt||t}|t}|t|_	|t
||}|ttkr|t
t8}|jdkr||}td||||||_|j|jd|j|}tj|}d}x||kr|jt}	t|	tkrtdtjt|	}	|	ttkr0td|jdkrDt|	|j|	t}
|	d}|d	@rp|
jd
}
n
|
jd}
t|
}|j|	t|_|j|	t |_!|	t"|_#|	dd\|_$|_%|_&|_'|_(|_)}
}|_*|_+|_,|j&t-krt.d
|j&d|	dd\|_/|_0|_1|
|_2|d?d|d?d@|d@|
d?|
d?d@|
d@df|_3|j4|j#||_#|j5j6|||j7|j8<|t|	t|	t|	t }|jdkrtd|qW|j}x*t9|j5ddddD]}||_:|j#}qWdS)NzFile is not a zip filerrzgiven, inferred, offsetrzTruncated central directoryz&Bad magic number for central directoryr izutf-8cp437rzzip file version %.1fr$r'r)r#irr%rtotalcSs|jS)N)ri)rrrr<lambda>Isz*ZipFile._RealGetContents.<locals>.<lambda>T)keyreverse);r8r6r7rrHprintrMrN_ECD_COMMENTrI
_ECD_LOCATIONrHrGrErAr=r@r:rBytesIOsizeCentralDirr-rBr,structCentralDir
_CD_SIGNATUREstringCentralDir_CD_FILENAME_LENGTHdecoder
_CD_EXTRA_FIELD_LENGTHr0_CD_COMMENT_LENGTHr^_CD_LOCAL_HEADER_OFFSETrirSrbrcrdrerarjrkrlMAX_EXTRACT_VERSIONrrfrgrhrmr`rr>r.r?r>sortedrn)r{r8rQZsize_cdZ	offset_cdconcatZinferredrRrYcentdirr>flagsrCtdZ
end_offsetrrrrrPs|









4  
zZipFile._RealGetContentscCsdd|jDS)NcSsg|]
}|jqSr)r>).0rRrrr
<listcomp>Psz$ZipFile.namelist.<locals>.<listcomp>)r>)r{rrrnamelistNszZipFile.namelistcCs|jS)N)r>)r{rrrinfolistRszZipFile.infolistcCsPtdd	|dx:|jD]0}d|jdd}td|j||jf|dqWdS)
Nz%-46s %19s %12s	File NameModified    Size)rz%d-%02d-%02d %02d:%02d:%02dr!z
%-46s %s %12d)rurvrw)r]r>r`r>rl)r{rrZdaterrrprintdirWszZipFile.printdircCs^d}xT|jD]J}y.|j|jd}x|j|r0q$WWdQRXWqtk
rT|jSXqWdS)NrrrAi)r>r=r>r:r)r{Z
chunk_sizerfrrrtestzip`szZipFile.testzipcCs$|jj|}|dkr td||S)Nz(There is no item named %r in the archive)r?rKeyError)r{r
inforrrgetinfoms

zZipFile.getinfocCs8|r"t|tr"tdt|j|r.||_nd|_dS)Nzpwd: expected bytes, got %s)rr*	TypeErrorrTrr)r{rrrrsetpasswordvs
zZipFile.setpasswordcCs|jS)N)rI)r{rrrr^szZipFile.commentcCs^t|tstdt|jt|tkrNddl}|jdtdd|dt}||_	d|_
dS)Nzcomment: expected bytes, got %srz3Archive comment is too long; truncating to %d bytesr)
stacklevelT)rr*r~rTrr-ZIP_MAX_COMMENTwarningswarnrIrG)r{r^rrrrr^s
c	Cs"|j|d|
}|jSQRXdS)NrA)r=r:)r{r
rr8rrrr:szZipFile.readF)force_zip64cs|d!krtd|r2t|tr2tdt|j|rF|dkrFtdjsTtdt|trd|}n$|dkr~t|}j|_	n
j
|}|dkrj||dSjrtdj
d	7_
tj|jjjfd
d}y|jt}t|tkrtdtjt|}|ttkr td
|j|t}|trF|j|t|jd@rZtd|jd@rntd|jd@r|jd}	n
|jd}	|	|j krtd|j |f|j!dk	r|j"|j#|j!krtd|j d|jd	@}
d}|
r|sj$}|st%d|t&|}|jd}t't(||dd}
|jd@rX|j)d?d@}n|j*d?d@}|
d|krt%d|t+||||d S|j,YnXdS)"NrArBzopen() requires mode "r" or "w"zpwd: expected bytes, got %sz'pwd is only supported for reading filesz2Attempt to use ZIP archive that was already closed)rzyCan't read from the ZIP file while there is an open writing handle on it. Close the writing handle before trying to read.rcsjS)N)rr)r{rrrZszZipFile.open.<locals>.<lambda>zTruncated file headerz Bad magic number for file header z$compressed patched data (flag bit 5)@zstrong encryption (flag bit 6)izutf-8rXz/File name in directory %r and header %r differ.zOverlapped entries: z (possible zip bomb)z6File %r is encrypted, password required for extractionrrrrrr%zBad password for file %rT>rArB)-rwrr*r~rTrr8r
rrar}_open_to_writerrMrrirQrr:sizeFileHeaderr-rrBr,r
_FH_SIGNATUREr_FH_FILENAME_LENGTH_FH_EXTRA_FIELD_LENGTHrerrfr_rnrVrkrrrrZr+rmrjrr)r{r
r	rrrZzef_fileZfheaderfnameZ	fname_strZis_encryptedZzdrhZ
check_byter)r{rr=s








zZipFile.opencCs|r|jrtd|jr"tdt|ds2d|_d|_d|_d|_|jt	kr\|jdO_|j
sp|jdO_|js|d|_|jo|p|jd	tk}|j
r|j
j|j|j
j|_|j|d
|_|j
j|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.rlrrrirg?Ti)rFrwrr<rlrkrjrerarrrhrr8r@r=rVri_writecheckrGrrr1)r{rrrrrrrs4


zZipFile._open_to_writecCs*|dkrtj}n
tj|}|j|||S)N)rtgetcwdr_extract_member)r{memberrrrrrextract6s

zZipFile.extractcCsL|dkr|j}|dkr"tj}n
tj|}x|D]}|j|||q2WdS)N)rsrtrrr)r{rmembersrrrrr
extractallCs


zZipFile.extractallcCs^|j}|s(d}tj|dt|}||_|j|}dd|j|D}|jdd|D}|S)Nz:<>|"?*_css|]}|jdVqdS).N)rstrip)rqrCrrr	<genexpr>^sz1ZipFile._sanitize_windows_name.<locals>.<genexpr>css|]}|r|VqdS)Nr)rqrCrrrr`s)!_windows_illegal_name_trans_tablerJ	maketransr-	translatesplitr/)rrpathseprZillegalrrr_sanitize_windows_nameTs
zZipFile._sanitize_windows_namecsNt|ts|j|}|jjdtjj}tjjrB|jtjjtjj}tjj	|d}dtjj
tjjftjjjfdd|j
tjjD}tjjdkr|j|tjj}tjj||}tjj|}tjj|}|rtjj|rtj||jrtjj|s
tj||S|j||d(}t|d}tj||WdQRXWdQRX|S)	Nrqrr~c3s|]}|kr|VqdS)Nr)rqrC)invalid_path_partsrrrtsz*ZipFile._extract_member.<locals>.<genexpr>\)rrE)rr
r}r>rvrtrrurrcurdirpardirr/rrrdirnameexistsmakedirsrrmkdirr=shutilcopyfileobj)r{rZ
targetpathrrZ	upperdirssourcetargetr)rrrcs.

&


 zZipFile._extract_membercCs|j|jkr(ddl}|jd|jdd|jdkr:td|jsHtd	t|j|j	sd}t
|jtkrpd
}n|j
tkrd}n|jtkrd}|rt|d
dS)NrzDuplicate name: %rr)rrBrCrDz&write() requires mode 'w', 'x', or 'a'z4Attempt to write ZIP archive that was already closedzFiles countZFilesizezZipfile sizez would require ZIP64 extensions)rBrCrD)r>r?rrr	rwr8rrarFr-r>ZIP_FILECOUNT_LIMITrlrrir
)r{rrrequires_zip64rrrrs(



zZipFile._writecheckcCs0|jstd|jrtdtj||}|jr>d|_d|_n|dk	rN||_n|j	|_|jr|j
|jrz|jj|j
|jj|_|jtkr|jdO_|j|d|_|jj|||j|j<|jj|jd|jj|_
WdQRXn<t|d,}|j|d}tj||dWdQRXWdQRXdS)Nz7Attempt to write to ZIP archive that was already closedz>Can't write to ZIP archive while an open writing handle existsrrTFr;rBiri )r8rwrr
rrrkrjrarrrr@r=rVrirrerrGr>r.r?r>rrr=rr)r{r>rrarsrcdestrrrrs8

z
ZipFile.writecCst|tr|jd}t|tspt|tjtjddd}|j|_|jd
dkrhd|_	|j	dO_	qtd|_	n|}|j
std	|jrtd
|dk	r||_t
||_|j*|j|dd}|j|WdQRXWdQRXdS)Nzutf-8r!)r>r`rrqiAriz7Attempt to write to ZIP archive that was already closedz?Can't write to ZIP archive while an open writing handle exists.rB)r	riAi)rrJrr
rrrrar>rhr8rwrr-rlrr=r)r{Zzinfo_or_arcnamerRrarrrrrwritestrs.



zZipFile.writestrcCs|jdS)N)r)r{rrr__del__szZipFile.__del__cCs||jdkrdS|jrtdzB|jdkr\|jr\|j"|jrJ|jj|j|j	WdQRXWd|j}d|_|j
|XdS)NzvCan't close the ZIP file while there is an open writing handle on it. Close the writing handle before closing the zip.rBrCrD)rBrCrD)r8rrwr	rGrrr@r=_write_end_recordrQ)r{r8rrrrs
z
ZipFile.closecCsrxP|jD]D}|j}|ddd>|dd>B|dB}|dd>|d	d>B|ddB}g}|jtksv|jtkr|j|j|j|jd
}d
}n|j}|j}|jtkr|j|jd
}n|j}|j}	d}
|rt|	d}	t	j
ddt|dd
t|f||	}	t}
|j
tkr(tt|
}
n|j
tkr>tt|
}
t|
|j}t|
|j}yZ|j\}
}t	j
tt||j||j||j
|||j||t|
t|	t|jd|j|j|}Wnltk
rttt||j||j|j |j
|||j||t|j!t|	t|jd|j|j|ft"j#dYnX|j$j%||j$j%|
|j$j%|	|j$j%|jq
W|j$j&}t|j}||j'}|j'}d}|t(krd}n|tkrd}n|tkrd}|r*|j)st*|dt	j
t+t,ddddd||||}|j$j%|t	j
t-t.d|d}|j$j%|t/|d}t/|d
}t/|d
}t	j
t0t1dd||||t|j2	}|j$j%||j$j%|j2|j$j3dS)Nrir#rr rrr%rlz<HHQr)rzFiles countzCentral directory offsetzCentral directory sizez would require ZIP64 extensions,ri)r)4r>r`rlrrkr.rir0r5rBrr-rrarr[rrrrcrSrrbrdrbrdrjr^rgrhDeprecationWarningr]rer>rxstderrr8rrVr=rrFr
rFrGrCrDr(rYrXrIr)r{rrrrr0rlrkriZ
extra_datarrcrSr>rermZpos2ZcentDirCountZcentDirSizeZ
centDirOffsetrZzip64endrecZzip64locrecrQrrrrs$$



















zZipFile._write_end_recordcCs*|jd8_|jr&|jr&|jdS)Nr)rMrKr)r{r8rrrrQrszZipFile._fpclose)N)N)rAN)F)NN)NNN)NN)N)#rrrr8rrr|rSrWrrPrsrtrxrzr}rr@r^setterr:r=rrrrrrrrrrrrrQrrrrr{s:WT
	
		
u
+

*
*
$fc@s0eZdZdeddfddZd
dd	Zd
dZdS)rrATrcCstj|||||d||_dS)N)r	rrR)rr|	_optimize)r{rr	rrRoptimizerrrr||szPyZipFile.__init__r~NcCstj|}|rF||rF|jrBtjj|r.dnd}td||fdStjj|\}}tjj|rntjj|d}tjj|r|rd||f}n|}|jrtd|d||j	|dd|\}}	|jrtd
|	|j
||	tj|}
|
jdx|
D]}tjj||}tjj
|\}
}tjj|rRtjjtjj|dr|j|||dq|dkr|r||r|jrtd
|q|j	|dd|\}}	|jrtd
|	|j
||	qWn|jrtd|xtj|D]}tjj||}tjj
|\}
}|dkr|r0||r0|jrtd
|q|j	|dd|\}}	|jrZtd
|	|j
||	qWnP|dddkrtd|j	|dd|\}}	|jrtd|	|j
||	dS)Nrrz%s %r skipped by filterfuncz__init__.pyz%s/%szAdding package inasrrZAdding)
filterfuncz.pyzfile %r skipped by filterfunczAdding files from directoryz.Files added with writepy() must end with ".py"zAdding filerrrr)rtrrHrrr]rr/isfile
_get_codenamerlistdirremovesplitextwritepyr)r{pathnamebasenamerZlabeldirr
ZinitnamerrZdirlistr>rrootZextrrrrsx












zPyZipFile.writepyc
sdfdd	}|d}|d}tjj|dd}tjj|dd}tjj|dd}jdkr\tjj|rtj|jtj|jkr|}	}
ntjj|rtj|jtj|jkr|}
|}	ntjj|rtj|jtj|jkr|}
|}	nvtjj|rtj|jtj|jkr|}
|}	nD||rRt	j
jd	kr4|}
nt	j
jdkrH|}
n|}
|}	n|}
}	njd	krr|}
|}	n<|}	jdkr|}
n&jdkr|}
nd
jj}t
|tjj|
otj|
jtj|jks||jds|}
}	tjj|	d}|rd||f}|
|fS)Nrcs^ddl}jrtd|y|j|d|dWn,|jk
rX}zt|jdSd}~XnXdS)NrZ	CompilingT)doraiserF)
py_compilerHr]compilePyCompileErrormsg)rrrerr)r{rr_compiles

z)PyZipFile._get_codename.<locals>._compilez.pyz.pycr~)optimizationrrz"invalid value for 'optimize': {!r})rz%s/%sr)rr)	importlibutilcache_from_sourcerrtrrrrrxrnrformatrwr)
r{rrrZfile_pyZfile_pycZpycache_opt0Zpycache_opt1Zpycache_opt2rrrZarchivenamer)r{rrs`


zPyZipFile._get_codenamer)r~N)rrrrr|rrrrrrrys
Rcsddl}|jd}|dkr(tjdd}|s:|ddkrLt|tjd|ddkrt|dkrvt|tjdt|dd	}|jWdQRXn||ddkr
t|dkrt|tjdt|dd	}|j	}WdQRX|rtd
j
|tdn|ddkrbt|dkr8t|tjdt|dd	}|j|dWdQRXn|ddkrt|dkrt|tjdfd
dt|ddh}x`|ddD]P}tj
j|}|stj
jtj
j|}|dtjtjfkrd}|||qWWdQRXdS)NraE        Usage:
            zipfile.py -l zipfile.zip        # Show listing of a zipfile
            zipfile.py -t zipfile.zip        # Test if a zipfile is valid
            zipfile.py -e zipfile.zip target # Extract zipfile into target dir
            zipfile.py -c zipfile.zip src ... # Create zipfile from sources
        r-l-c-e-trrAz.The following enclosed file is corrupted: {!r}zDone testingrcsptjj|r|j||tnPtjj|rl|r8|j||x2tj|D]$}|tjj||tjj||qDWdS)N)rtrrrrrrr/)r9rzippathZnm)addToZiprrrUszmain.<locals>.addToZiprBr~)rrrr)textwrapdedentrxargvr]exitr-rrxrzrrrtrrrrr)argsrZUSAGEr9Zbadfilerrr)rrmain'sT




r__main__liiiii)N)rrtreimportlib.utilrrxrrrrBZbinasciirNImportErrorZdummy_threadingrrrr__all__	Exceptionrr
rrrrrrrrrrzrrrrjrYrXrrWrHrIrJrKrLrMrNr]r^r_rbrdrarcZ_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_SIZErergrhZ_CD_DISK_NUMBER_STARTZ_CD_INTERNAL_FILE_ATTRIBUTESZ_CD_EXTERNAL_FILE_ATTRIBUTESrirrrrZ_FH_EXTRACT_VERSIONZ_FH_EXTRACT_SYSTEMZ_FH_GENERAL_PURPOSE_FLAG_BITSZ_FH_COMPRESSION_METHODZ_FH_LAST_MOD_TIMEZ_FH_LAST_MOD_DATEZ_FH_CRCZ_FH_COMPRESSED_SIZEZ_FH_UNCOMPRESSED_SIZErrrCrDrArFrGrEZ_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+r5r9r	rTr6objectr
rrrrrrrrrrrr1rrrrrrrr<module>sB









+=[=&-J/
B