-=[ Mr. Bumblebee ]=-
_Indonesia_

Path : /usr/lib/python2.7/
File Upload :
Current File : //usr/lib/python2.7/zipfile.pyc


V}]c	@s=dZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZyddlZej
Z
Wn ek
reZej
Z
nXddddddd	d
dg	ZdefdYZdefd
YZeZdd>dZdd>dZdd>dZdZdZdZdZejeZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)eje(Z*dZ+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6d Z7d!Z8d"Z9d#Z:dZ;d$Z<d%Z=d&Z>d'Z?eje>Z@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKdZLd(ZMd)ZNejeMZOd*ZPd+ZQejePZRdZSdZTdZUdZVdZWdZXdZYdZZdZ[dZ\d,Z]d-Z^d.Z_d/Z`deafd0YZbd1fd2YZcid3d6d4d6d5d6d5d6d5d6d5d6d6d6d7d6d8d6d9d6d6d6d:d 6d;d"6d<d%6d=d>6d?d@6dAdB6ZddCe	jefdDYZfd	eafdEYZgd
egfdFYZhedGZiejdHkr9eindS(Is
Read and write ZIP files.
iNt
BadZipfileterrort
ZIP_STOREDtZIP_DEFLATEDt
is_zipfiletZipInfotZipFilet	PyZipFiletLargeZipFilecBseZRS((t__name__t
__module__(((s/usr/lib/python2.7/zipfile.pyRscBseZdZRS(su
    Raised when writing a zipfile, the zipfile requires ZIP64 extensions
    and those extensions are disabled.
    (R	R
t__doc__(((s/usr/lib/python2.7/zipfile.pyRsiiiiis<4s4H2LHsPKiiiiiii	s<4s4B4HL2L5H2LsPKi
iii
iiiis<4s2B4HL2L2HsPKs<4sLQLsPKs
<4sQ2H2L4QsPKcCs,yt|rtSWntk
r'nXtS(N(t_EndRecDatatTruetIOErrortFalse(tfp((s/usr/lib/python2.7/zipfile.pyt_check_zipfiles
cCsgt}yIt|dr*td|}n$t|d}t|}WdQXWntk
rbnX|S(sQuickly see if a file is a ZIP file by checking the magic number.

    The filename argument may be a file or file-like object too.
    treadRtrbN(RthasattrRtopenR(tfilenametresultR((s/usr/lib/python2.7/zipfile.pyRs
c
Csny|j|tdWntk
r,|SX|jt}t|tkrR|Stjt|\}}}}|tkr|S|dks|dkrt	dn|j|tt
d|jt
}t|t
kr|Stjt|\
}}}	}
}}}
}}}|tkr$|S||t
<||t<||t<|
|t<||t<||t<||t<|S(sM
    Read the ZIP64 end-of-archive records and use that to update endrec
    iiis3zipfiles that span multiple disks are not supported(tseektsizeEndCentDir64LocatorRRtlentstructtunpacktstructEndArchive64LocatortstringEndArchive64LocatorRtsizeEndCentDir64tstructEndArchive64tstringEndArchive64t_ECD_SIGNATUREt_ECD_DISK_NUMBERt_ECD_DISK_STARTt_ECD_ENTRIES_THIS_DISKt_ECD_ENTRIES_TOTALt	_ECD_SIZEt_ECD_OFFSET(tfpintoffsettendrectdatatsigtdisknotrelofftdiskstsztcreate_versiontread_versiontdisk_numtdisk_dirtdircountt	dircount2tdirsizet	diroffset((s/usr/lib/python2.7/zipfile.pyt
_EndRecData64s6
0






c	Cs|jdd|j}y|jtdWntk
rEd	SX|j}t|tkr|dd!tkr|ddkrtj	t
|}t|}|jd|j|tt
|t|St|d
td}|j|d|j}|jt}|dkr|||t!}t|tkrId	Sttj	t
|}|t}||t|t|!}|j||j||t
|||||Sd	S(sReturn data from the "End of Central Directory" record, or None.

    The data is a list of the nine items in the ZIP "End of central dir"
    record followed by a tenth item, the file seek offset of this record.iiiittiiNi(RttelltsizeEndCentDirRtNoneRRtstringEndArchiveRRtstructEndArchivetlisttappendR:tmaxtrfindt_ECD_COMMENT_SIZE(	R)tfilesizeR,R+tmaxCommentStarttstarttrecDatatcommentSizetcomment((s/usr/lib/python2.7/zipfile.pyRs>



cBsJeZdZdZdddZddZdZdZdZ	RS( s>Class with attributes describing each file in the ZIP archive.t
orig_filenameRt	date_timet
compress_typeRLtextrat
create_systemR2textract_versiontreservedt	flag_bitstvolumet
internal_attrt
external_attrt
header_offsettCRCt
compress_sizet	file_sizet	_raw_timetNoNameiiicCs#||_|jtd}|dkr:|d|!}ntjdkrptj|krp|jtjd}n||_||_|ddkrtdnt	|_
d|_d|_t
jdkrd|_n	d|_d|_d|_d|_d|_d|_d|_d|_dS(	Nit/is+ZIP does not support timestamps before 1980R<twin32ii(RMtfindtchrtostseptreplaceRRNt
ValueErrorRRORLRPtsystplatformRQR2RRRSRTRURVRW(tselfRRNt	null_byte((s/usr/lib/python2.7/zipfile.pyt__init__s.													c
Cs|j}|ddd>|dd>B|dB}|dd>|d	d>B|ddB}|jd
@rsd}}}n|j}|j}|j}|j}|dkr|tkp|tk}n|rd}	|tj	|	dtj
|	d	||}n|tks|tkr_|s&tdnd
}d
}td|j
|_
td|j
|_n|j\}
}tj	tt|j
|j||j|||||t|
t|
}||
|S(s'Return the per-file header as a string.iii	iiiiiiis<HHQQs'Filesize would require ZIP64 extensionsIi-N(RNRTRYRZR[RPR?tZIP64_LIMITRtpacktcalcsizeRRDRRR2t_encodeFilenameFlagststructFileHeadertstringFileHeaderRSROR(
Rhtzip64tdttdosdatetdostimeRYRZR[RPtfmtRRTtheader((s/usr/lib/python2.7/zipfile.pyt
FileHeaderIs:	&&
				#cCstt|jtr`y|jjd|jfSWqptk
r\|jjd|jdBfSXn|j|jfSdS(Ntasciisutf-8i(t
isinstanceRtunicodetencodeRTtUnicodeEncodeError(Rh((s/usr/lib/python2.7/zipfile.pyRnps
!cCs(|jd@r|jjdS|jSdS(Nisutf-8(RTRtdecode(Rh((s/usr/lib/python2.7/zipfile.pyt_decodeFilenameys
cCs|j}tj}xjt|dkr~|d|d \}}|dkrm|dkrq|d|dd!}no|dkr|d|dd	!}nJ|d
kr|d|dd!}n%|d
krd}ntd|fd
}|jdkr|||_|d7}n|jdkr8|||_|d7}n|jdkrm|j}|||_|d7}qmn||d}qWdS(Nis<HHiis<QQQiis<QQiis<QiisCorrupt extra field %sll((ll(RPRRRtRuntimeErrorR[RZRX(RhRPRttptlntcountstidxtold((s/usr/lib/python2.7/zipfile.pyt_decodeExtras4			



	
(s
orig_filenamesfilenames	date_times
compress_typescommentsextras
create_systemscreate_versionsextract_versionsreserveds	flag_bitssvolumes
internal_attrs
external_attrs
header_offsetsCRCs
compress_sizes	file_sizes	_raw_time(iiiiiiN(
R	R
Rt	__slots__RjR?RwRnR~R(((s/usr/lib/python2.7/zipfile.pyRs2*'			t
_ZipDecryptercBsDeZdZdZeZdZdZdZdZRS(sClass to handle decryption of files stored within a ZIP archive.

    ZIP supports a password-based form of encryption. Even though known
    plaintext attacks have been found against it, it is still useful
    to be able to get data out of such a file.

    Usage:
        zd = _ZipDecrypter(mypwd)
        plain_char = zd(cypher_char)
        plain_text = map(zd, cypher_text)
    cCsd}dgd}xhtdD]Z}|}xAtdD]3}|d@r^|d?d@|A}q9|d?d@}q9W|||<q W|S(sGenerate a CRC-32 table.

        ZIP encryption uses the CRC32 one-byte primitive for scrambling some
        internal keys. We noticed that a direct implementation is faster than
        relying on binascii.crc32().
        I iiiii(trange(tpolyttabletitcrctj((s/usr/lib/python2.7/zipfile.pyt_GenerateCRCTables

cCs%|d?d@|j|t|Ad@AS(s(Compute the CRC32 primitive on one byte.iii(tcrctabletord(RhtchR((s/usr/lib/python2.7/zipfile.pyt_crc32scCs=d|_d|_d|_x|D]}|j|q"WdS(NixV4igE#ixV4(tkey0tkey1tkey2t_UpdateKeys(Rhtpwdtp((s/usr/lib/python2.7/zipfile.pyRjs
			
cCsx|j||j|_|j|jd@d@|_|jddd@|_|jt|jd?d@|j|_dS(NiIiii(RRRRaR(Rhtc((s/usr/lib/python2.7/zipfile.pyRscCsPt|}|jdB}|||dAd?d@A}t|}|j||S(sDecrypt a single character.iiii(RRRaR(RhRtk((s/usr/lib/python2.7/zipfile.pyt__call__s

(	R	R
RRRRRjRR(((s/usr/lib/python2.7/zipfile.pyRs					tstoretshrinktreducetimplodettokenizetdeflatet	deflate64tbzip2tlzmattersetlz77itwavpackiatppmdibt
ZipExtFilecBseZdZdd>ZdZejdZde	dZ
ddZddZd	Z
dd
ZdZdZd
ZRS(sZFile-like object for reading an archive member.
       Is returned by ZipFile.open().
    iiis*^(?P<chunk>[^\r\n]+)|(?P<newline>\n|\r\n?)cCsf||_||_||_|j|_|j|_|j|_|jtkrct	j
d|_n\|jtkrt
j|j}|rtd|j|fqtd|jfnd|_d|_d|_d|k|_d|_|jdk	r|jd8_n||_|j|_t|drY|j|_tdd	@|_n	d|_dS(
Niscompression type %d (%s)scompression type %dR<itUiRYI(t_fileobjt
_decryptert_close_fileobjROt_compress_typeRZt_compress_sizet_compress_leftRtzlibt
decompressobjt
_decompressorRtcompressor_namestgettNotImplementedErrort_unconsumedt_readbuffert_offsett
_universalR?tnewlinestmodeRtnameRRYt
_expected_crctcrc32t_running_crc(RhtfileobjRtzipinfot	decryptert
close_fileobjtdescr((s/usr/lib/python2.7/zipfile.pyRjs4								icCs|jra|dkra|jjd|jd}|dkra|j|j|!}||_|Sn|js}tjj||Sd}x|dkst||kr|jd}|dkr|S|j	j
|}|jd}|dk	rJ|j
dkrg|_
n||j
kr-|j
j|n|jt|7_|dS|jd}|dkr|||t| }n|jt|7_||7}qW|S(	srRead and return a line from the stream.

        If limit is specified, at most limit bytes will be read.
        is
iR<itnewlinetchunkN(RRR`RtiotBufferedIOBasetreadlineRtpeektPATTERNtsearchtgroupR?RRC(RhtlimitRtlinet	readaheadtmatchRR((s/usr/lib/python2.7/zipfile.pyR+s8		!
cCs|t|j|jkr{|j|}t||jkrc||j|j|_d|_q{|jt|8_n|j|j|jd!S(s6Returns buffered bytes without advancing the position.ii(RRRR(RhtnR((s/usr/lib/python2.7/zipfile.pyR]scCstS(N(R
(Rh((s/usr/lib/python2.7/zipfile.pytreadablejscCsd}|dkrd}nxztr|dkrB|j|}n2|t|krp|j|t|}n|St|dkr|S||7}qWdS(sRead and return up to n bytes.
        If the argument is omitted, None, or negative, data is read and returned until EOF is reached..
        R<iiN(R?R
tread1R(RhRtbufR,((s/usr/lib/python2.7/zipfile.pyRms		cCs^|jdkrdSt||jd@|_|rZ|j|jkrZtd|jndS(NIsBad CRC-32 for file %r(RR?RRRR(Rhtnewdatateof((s/usr/lib/python2.7/zipfile.pyt_update_crcs
cCsg|dks|dkr$|j}nt|j|j}|jdkrW||t|jkrW||t|j}t||j}t	||j}|j
j|}|jt|8_|r|jdk	rdj
t|j|}n|jtkrE|j|d|jdk|j|j||_d|_qW|j|7_nt|jdkr4||kr4|jtkr4|jj|jt|||j}|jj|_t|jdko|jdk}|r||jj7}n|j|d||j|j||_d|_n|j|j|j|!}|jt|7_|S(s7Read up to n bytes with at most one read() system call.iR<RN(R?tMAX_NRRRRRRDt
MIN_READ_SIZEtminRRRtjointmapRRRRRt
decompresstunconsumed_tailtflush(RhRtlen_readbuffertnbytesR,R((s/usr/lib/python2.7/zipfile.pyRs>(!	$cCs8z|jr|jjnWdtt|jXdS(N(RRtclosetsuperR(Rh((s/usr/lib/python2.7/zipfile.pyRs	iN(R	R
RRRtretcompileRR?RRjRRRRRRR(((s/usr/lib/python2.7/zipfile.pyRs
'2
		
	4cBseZdZdZdeedZdZdZ	dZ
dZdZdZ
d	Zd
ZdZedZejd
ZddZdddZdddZddddZdZdZdddZddZdZdZRS(sd Class with methods to open, read, write, close, list zip files.

    z = ZipFile(file, mode="r", compression=ZIP_STORED, allowZip64=False)

    file: Either the path to the file, or a file-like object.
          If it is a path, the file will be opened and closed by ZipFile.
    mode: The mode can be either read "r", write "w" or append "a".
    compression: ZIP_STORED (no compression) or ZIP_DEFLATED (requires zlib).
    allowZip64: if True ZipFile will create files with ZIP64 extensions when
                needed, otherwise it will raise an exception when this would
                be necessary.

    trcCs\|dkrtdn|tkr*n*|tkrKtsTtdqTn	td||_t|_d|_i|_g|_	||_
|jdd	d|_}d|_d	|_t|trXd|_||_id
d6dd6dd6}yt||||_Wqtk
rT|dkrNd}}t||||_qUqXn'd
|_||_t|dd|_y|dkr|jn|dkrt|_no|dkry$|j|jj|jdWq"tk
r|jjddt|_q"XntdWn2|j}d|_|jsQ|jnnXdS(s>Open the ZIP file with mode read "r", write "w" or append "a".Rtwtas(ZipFile() requires mode "r", "w", or "a"s.Compression requires the (missing) zlib modules(That compression method is not supporteditbR<Rtwbsr+biRisMode must be "r", "w" or "a"N(RRR(RRRRt_allowZip64Rt
_didModifytdebugt
NameToInfotfilelisttcompressionRdRR?Rt_commentRyt
basestringt_filePassedRRRRtgetattrt_RealGetContentsR
Rt	start_dirRR(RhtfileRRt
allowZip64tkeytmodeDictR((s/usr/lib/python2.7/zipfile.pyRjsf											


		


			
cCs|S(N((Rh((s/usr/lib/python2.7/zipfile.pyt	__enter__scCs|jdS(N(R(Rhttypetvaluet	traceback((s/usr/lib/python2.7/zipfile.pyt__exit__ scCsH|j}yt|}Wntk
r8tdnX|sKtdn|jdkrb|GHn|t}|t}|t|_|t	||}|t
tkr|tt
8}n|jdkr||}dG|G|G|GHn|||_|j|jd|j|}tj|}d}x||krC|jt}	t|	tkrftdntjt|	}	|	ttkrtdn|jdkr|	GHn|j|	t}
t|
}|j|	t|_|j|	t|_|	t |_!|	dd!\|_"|_#|_$|_%|_&|_'}}
|_(|_)|_*|	d	d
!\|_+|_,|_-||_.|
d?d|
d
?d	@|
d@|d?|d
?d@|d@df|_/|j0|j!||_!|j1|_2|j3j4|||j5|j2<|t|	t|	t|	t}|jdkr*dG|GHq*q*WdS(s/Read in the table of contents for the ZIP file.sFile is not a zip fileiisgiven, inferred, offsetisTruncated central directorys&Bad magic number for central directoryiiii	iiiii?ttotalN(6RRRRRR'R(t_ECD_COMMENTRt
_ECD_LOCATIONR"R!RRRRRt	cStringIOtStringIOtsizeCentralDirRRRtstructCentralDirt
_CD_SIGNATUREtstringCentralDirt_CD_FILENAME_LENGTHRt_CD_EXTRA_FIELD_LENGTHRPt_CD_COMMENT_LENGTHRLt_CD_LOCAL_HEADER_OFFSETRXR2RQRRRSRTRORYRZR[RURVRWR\RNRR~RRRCR(RhRR+tsize_cdt	offset_cdtconcattinferredR,RtcentdirRtxtttd((s/usr/lib/python2.7/zipfile.pyR#sd	






I	&
"cCs.g}x!|jD]}|j|jqW|S(s+Return a list of file names in the archive.(RRCR(RhtlR,((s/usr/lib/python2.7/zipfile.pytnamelisthscCs|jS(sJReturn a list of class ZipInfo instances for files in the
        archive.(R(Rh((s/usr/lib/python2.7/zipfile.pytinfolistoscCsJdd	GHx:|jD]/}d|jd }d|j||jfGHqWdS(
s+Print a table of contents for the zip file.s%-46s %19s %12ss	File NamesModified    tSizes%d-%02d-%02d %02d:%02d:%02dis
%-46s %s %12dN(s	File NamesModified    R(RRNRR[(Rhtzinfotdate((s/usr/lib/python2.7/zipfile.pytprintdirts	cCsnd}xa|jD]V}y8|j|jd}x|j|rFq4WWdQXWqtk
re|jSXqWdS(s%Read all the files and check the CRC.iiRNi(RRRRR(Rht
chunk_sizeRtf((s/usr/lib/python2.7/zipfile.pyttestzip{s
cCs5|jj|}|dkr1td|n|S(s,Return the instance of ZipInfo given 'name'.s(There is no item named %r in the archiveN(RRR?tKeyError(RhRtinfo((s/usr/lib/python2.7/zipfile.pytgetinfos
cCs
||_dS(s)Set default password for encrypted files.N(R(RhR((s/usr/lib/python2.7/zipfile.pytsetpasswordscCs|jS(s.The comment text associated with the ZIP file.(R(Rh((s/usr/lib/python2.7/zipfile.pyRLscCsXt|tkrBddl}|jdtdd|t }n||_t|_dS(Nis3Archive comment is too long; truncating to %d bytest
stackleveli(RtZIP_MAX_COMMENTtwarningstwarnRR
R(RhRLR'((s/usr/lib/python2.7/zipfile.pyRLs	
	cCs|j|d|jS(s)Return file bytes (as a string) for name.R(RR(RhRR((s/usr/lib/python2.7/zipfile.pyRscCsd|dkrtdn|js-tdn|jrH|j}t}nt|jd}t}yt|tr{|}n|j	|}|j
|jd|jt
}t|t
krtdntjt|}|ttkrtd	n|j|t}|tr/|j|tn||jkrWtd
|j|fn|jd@}	d}
|	r&|s|j}n|std|nt|}
|jd
}t|
|dd
!}|jd@r|jd?d@}
n|jd?d@}
t|d|
kr&td|q&nt ||||
d|SWn|rY|j!nnXdS(s#Return file-like object for 'name'.RRtrUs&open() requires mode "r", "U", or "rU"s3Attempt to read ZIP archive that was already closedRisTruncated file headers Bad magic number for file headers3File name in directory "%s" and header "%s" differ.is6File %s is encrypted, password required for extractioniiiiisBad password for fileRN(RRsrU("RRRRRRR
RyRR#RRXRtsizeFileHeaderRRRRRot
_FH_SIGNATURERpt_FH_FILENAME_LENGTHt_FH_EXTRA_FIELD_LENGTHRMRTR?RRRR\RYRRR(RhRRRtzef_filetshould_closeRtfheadertfnametis_encryptedtzdtbytestht
check_byte((s/usr/lib/python2.7/zipfile.pyRsd						




cCsOt|ts!|j|}n|dkr<tj}n|j|||S(s#Extract a member from the archive to the current working directory,
           using its full name. Its file information is extracted as accurately
           as possible. `member' may be a filename or a ZipInfo object. You can
           specify a different directory using `path'.
        N(RyRR#R?Rbtgetcwdt_extract_member(RhtmembertpathR((s/usr/lib/python2.7/zipfile.pytextracts
cCsC|dkr|j}nx!|D]}|j|||q"WdS(sExtract all members from the archive to the current working
           directory. `path' specifies a different directory to extract to.
           `members' is optional and must be a subset of the list returned
           by namelist().
        N(R?RR;(RhR:tmembersRR((s/usr/lib/python2.7/zipfile.pyt
extractalls
c
Cs|jjdtjj}tjjrH|jtjjtjj}ntjj|d}tjjjd|jtjjD}tjjdkr2d}t	|t
rd|D}ntj|dt
|}|j|}d|jtjjD}tjjjd	|D}ntjj||}tjj|}tjj|}|rtjj|rtj|n|jd
dkrtjj|stj|n|S|j|d|/}t|d}	tj||	Wd
QXWd
QX|S(sbExtract the ZipInfo object 'member' to a physical
           file on the path targetpath.
        R^icss6|],}|dtjjtjjfkr|VqdS(R<N(RbR:tcurdirtpardir(t.0R((s/usr/lib/python2.7/zipfile.pys	<genexpr>ss\s:<>|"?*cSs%i|]}tdt|qS(t_(R(R@R((s/usr/lib/python2.7/zipfile.pys
<dictcomp>%s	RAcss|]}|jdVqdS(t.N(trstrip(R@R((s/usr/lib/python2.7/zipfile.pys	<genexpr>*scss|]}|r|VqdS(N((R@R((s/usr/lib/python2.7/zipfile.pys	<genexpr>+siRRN(RRdRbR:Rctaltsept
splitdriveRtsplitRyRztstringt	maketransRt	translatetnormpathtdirnametexiststmakedirstisdirtmkdirRRtshutiltcopyfileobj(
RhR9t
targetpathRtarcnametillegalRt	upperdirstsourcettarget((s/usr/lib/python2.7/zipfile.pyR8s4!."cCs+|j|jkr;ddl}|jd|jddn|jdkrVtdn|jsktd	n|jtkrt	rtd
n|jt
tfkrtdn|js'd}t
|jtkrd}n0|jtkrd
}n|jtkrd}n|r't|dq'ndS(s6Check for errors before writing a file to the archive.iNsDuplicate name: %rR%iRRs write() requires mode "w" or "a"s4Attempt to write ZIP archive that was already closeds.Compression requires the (missing) zlib modules(That compression method is not supportedsFiles counttFilesizesZipfile sizes would require ZIP64 extensions(RR(RRR'R(RRRRORRRRR?RRtZIP_FILECOUNT_LIMITR[RkRXR(RhRR'trequires_zip64((s/usr/lib/python2.7/zipfile.pyt_writecheck@s2								cCs|jstdntj|}tj|j}tj|j}|dd!}|d	krm|}ntj
jtj
j|d}x*|dtj
tjfkr|d}qW|r|d7}nt||}|dd@d>|_|d	kr|j|_n	||_|j|_d|_|jj|_|j|t|_|rd|_d|_d|_|jdO_|jj|||j|j <|jj!|j"t#d	St$|d
	}	d|_}
d|_}|j%o|jdt&k}|jj!|j"||jt'krOt(j)t(j*t(j+d}
nd	}
d}xw|	j,d}|swPn|t-|}t.||
d@}
|
r|
j/|}|t-|}n|jj!|q^Wd	QX|
r|
j0}|t-|}|jj!|||_n	||_|
|_||_|r}|j%r}|t&kr_tdn|t&kr}tdq}n|jj}|jj1|jd|jj!|j"||jj1|d|jj|||j|j <d	S(sLPut the bytes from filename into the archive under the name
        arcname.s7Attempt to write to ZIP archive that was already closediiiR^iliNRg?iiiIs*File size has increased during compressings-Compressed size larger than uncompressed sizei (2RRRbtstattS_ISDIRtst_modettimet	localtimetst_mtimeR?R:RJRERcRDRRWRROtst_sizeR[RTR=RXR[R
RRZRYRRCRRtwriteRwRRRRkRRtcompressobjtZ_DEFAULT_COMPRESSIONtDEFLATEDRRRtcompressRR(RhRRSROtstRNtmtimeRNRRRYRZRqtcmprR[Rtposition((s/usr/lib/python2.7/zipfile.pyRc\s	
	"
		
				

				cCsBt|ts}td|dtjtjd }|j|_|jddkrqd|_|jdO_qd|_n|}|jst	d	n|dk	r||_nt||_|jj
|_|j|t|_t|d
@|_|jtkrRtjtjtjd}|j||j}t||_n|j|_|jtkpy|jtk}|r|jrtdn|jj|j ||jj||j!d
@r|rdnd}|jjt"j#||j|j|jn|jj|j$j%|||j&|j<dS(sWrite a file into the archive.  The contents is the string
        'bytes'.  'zinfo_or_arcname' is either a ZipInfo instance or
        the name of the file in the archive.RRNiiR^iAiis7Attempt to write to ZIP archive that was already closedIis'Filesize would require ZIP64 extensionsis<LQQs<LLLNiAi('RyRR_R`RRORRWRRR?RR[R=RXR[R
RRRYRRRdReRfRgRRZRkRRRcRwRTRRlRRCR(Rhtzinfo_or_arcnameR4RORtcoRqRu((s/usr/lib/python2.7/zipfile.pytwritestrsL		
	

cCs|jdS(s2Call the "close()" method in case the user forgot.N(R(Rh((s/usr/lib/python2.7/zipfile.pyt__del__scCs|jdkrdSz|jdkr|jr|jj}x|jD]}|j}|ddd>|dd>B|d	B}|d
d>|dd>B|dd	B}g}|jtks|j	tkr|j
|j|j
|j	d
}d
}n|j}|j	}|jtkr/|j
|jd}	n	|j}	|j}
|rt
jddt|ddt|||
}
td|j}td|j}n|j}|j}y|j\}
}t
jtt||j||j||j|||j||t|
t|
t|jd|j|j|	}Wntk
rtjtt||j||j|j |j|||j||t|j!t|
t|jd|j|j|	fIJnX|jj"||jj"|
|jj"|
|jj"|jqGW|jj}t|j}||}|}d}|t#krVd}n*|tkrkd}n|tkrd}n|r:|j$st%|dnt
jt&t'ddddd||||}|jj"|t
jt(t)d|d}|jj"|t*|d}t*|d
}t*|d
}nt
jt+t,dd||||t|j-	}|jj"||jj"|j-|jj.nWd|j}d|_|j/s|j0nXdS(sJClose the file, and for mode "w" and "a" write the ending
        records.NRRiii	iiiiiiIls<HHtQii-sFiles countsCentral directory offsetsCentral directory sizes would require ZIP64 extensionsi,i(RR(1RR?RRR=RRNR[RkRZRCRXRPRRlRRDRRR2RnRR
RQRSRORYRLRVRWtDeprecationWarningRftstderrRTRRcRYRRR R!RRRRAR@RRRR(Rhtpos1RRrRsRtRPR[RZRXt
extra_dataRRR2RRTRtpos2tcentDirCounttcentDirSizet
centDirOffsetRZtzip64endrectzip64locrecR+R((s/usr/lib/python2.7/zipfile.pyRs	&&									


!	
				
			N(R	R
RR?RRRRjRRRRRRR R#R$tpropertyRLtsetterRRR;R=R8R[RcRnRoR(((s/usr/lib/python2.7/zipfile.pyRs0
G			E				
			O	.	Z3	cBs#eZdZddZdZRS(sDClass to create ZIP archives with Python library files and packages.R<c
Cstjj|\}}tjj|r|tjj|d}tjj|r|rjd||f}n|}|jrdG|GdG|GHn|j|dd!|\}}|jrdG|GHn|j||tj	|}|j
dx|D]}	tjj||	}
tjj|	\}}tjj|
rptjjtjj|
dr|j|
|qq|dkr|j|
dd!|\}}|jrdG|GHn|j||qqWq|jrd	G|GHnxtj	|D]}	tjj||	}
tjj|	\}}|dkr|j|
dd!|\}}|jrbdG|GHn|j||qqWn`|ddkrt
d
n|j|dd!|\}}|jrdG|GHn|j||dS(
s,Add all files from "pathname" to the ZIP archive.

        If pathname is a package directory, search the directory and
        all package subdirectories recursively for all *.py and enter
        the modules into the archive.  If pathname is a plain
        directory, listdir *.py and enter all modules.  Else, pathname
        must be a Python *.py file and the module will be put into the
        archive.  Added modules are always module.pyo or module.pyc.
        This method will compile the module.py into module.pyc if
        necessary.
        s__init__.pys%s/%ssAdding package intasiitAddings.pysAdding files from directorys.Files added with writepy() must end with ".py"sAdding fileN(RbR:RFRNRtisfileRt
_get_codenameRctlistdirtremovetsplitexttwritepyR(
RhtpathnametbasenametdirRtinitnameR1RStdirlistRR:troottext((s/usr/lib/python2.7/zipfile.pyR`sZ		

!					c
Cs8|d}|d}|d}tjj|r]tj|jtj|jkr]|}ntjj|stj|jtj|jkrddl}|jrdG|GHny|j||dt	Wn|j
k
r}|jGHnX|}n|}tjj|d}	|r.d||	f}	n||	fS(	sReturn (filename, archivename) for the path.

        Given a module name path, return the correct file path and
        archive name, compiling if necessary.  For example, given
        /python/lib/string, return (/python/lib/string.pyc, string).
        s.pys.pycs.pyoiNt	Compilingis%s/%s(
RbR:RR\Rat
py_compileRRR?R
tPyCompileErrortmsgRF(
RhRRtfile_pytfile_pyctfile_pyoR1Rterrtarchivename((s/usr/lib/python2.7/zipfile.pyRs*


$	$		(R	R
RRR(((s/usr/lib/python2.7/zipfile.pyR]sAc	sddl}|jd}|dkr7tjd}n|sN|ddkrc|GHtjdn|ddkrt|d	kr|GHtjdnt|dd
}|jWdQXn|ddkrAt|d	kr|GHtjdnt|dd
}|j	}WdQX|r9dj
|GHndGHnT|ddkrt|d
krx|GHtjdnt|dd
}|j|d	WdQXn|ddkrt|d
kr|GHtjdnfdt|dddt}x|d	D]s}t
jj|}|sTt
jjt
jj|}n|dt
jt
jfkrxd}n|||qWWdQXndS(NisE        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
        iis-ls-cs-es-tiRs.The following enclosed file is corrupted: {!r}sDone testingicstjj|r(|j||tnvtjj|r|rS|j||nxHtj|D]4}|tjj||tjj||qcWndS(N(RbR:RRcRRNRR(tzfR:tzippathtnm(taddToZip(s/usr/lib/python2.7/zipfile.pyRsRRR<(s-ls-cs-es-t(ttextwraptdedentR?RftargvtexitRRRR tformatR=R
RbR:RRKR>R?(targsRtUSAGERtbadfileR:R((Rs/usr/lib/python2.7/zipfile.pytmainsT	!	t__main__(kRRRbR_RfRPtbinasciiRR\RRRGRRtImportErrorR?t__all__t	ExceptionRRRRkRYR&RRRAR@RmR>R"R#R$R%R&R'R(RFRRRR
RR	t_CD_CREATE_VERSIONt_CD_CREATE_SYSTEMt_CD_EXTRACT_VERSIONt_CD_EXTRACT_SYSTEMt
_CD_FLAG_BITSt_CD_COMPRESS_TYPEt_CD_TIMEt_CD_DATEt_CD_CRCt_CD_COMPRESSED_SIZEt_CD_UNCOMPRESSED_SIZERRR
t_CD_DISK_NUMBER_STARTt_CD_INTERNAL_FILE_ATTRIBUTESt_CD_EXTERNAL_FILE_ATTRIBUTESRRoRpR*R+t_FH_EXTRACT_VERSIONt_FH_EXTRACT_SYSTEMt_FH_GENERAL_PURPOSE_FLAG_BITSt_FH_COMPRESSION_METHODt_FH_LAST_MOD_TIMEt_FH_LAST_MOD_DATEt_FH_CRCt_FH_COMPRESSED_SIZEt_FH_UNCOMPRESSED_SIZER,R-RRRR R!Rt_CD64_SIGNATUREt_CD64_DIRECTORY_RECSIZEt_CD64_CREATE_VERSIONt_CD64_EXTRACT_VERSIONt_CD64_DISK_NUMBERt_CD64_DISK_NUMBER_STARTt_CD64_NUMBER_ENTRIES_THIS_DISKt_CD64_NUMBER_ENTRIES_TOTALt_CD64_DIRECTORY_SIZEt_CD64_OFFSET_START_CENTDIRRRR:RtobjectRRRRRRRRR	(((s/usr/lib/python2.7/zipfile.pyt<module>s<$


			+	=<
cB

Copyright © 2017 || Recoded By Mr.Bumblebee