JFIF  x x C         C     "        } !1AQa "q2 #B R $3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz        w !1AQ aq"2 B #3R br $4 % &'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz   ?  N m? j EP ó Åßjc @s[dZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z yddl Z e j Z Wn ek rÅeZ ej Z nXddddddd d d g Zdefd „ƒYZd efd „ƒYZeZdd>dZdd>dZdd>dZdZdZdZdZejeƒZdZdZdZ 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)ZNejeMƒZOd*ZPd+ZQejePƒZRdZSdZTdZUdZVdZWdZXdZYdZZdZ[dZ\d,Z]ej^d-ƒZ_d.„Z`d/„Zad0„Zbd1„Zcd2„Zddeefd3„ƒYZfd4fd5„ƒYZgid6d6d7d6d8d6d8d6d8d6d8d6d9d6d:d6d;d6d<d6d9d6d=d 6d>d"6d?d%6d@dA6dBdC6dDdE6ZhdFe jifdG„ƒYZjd eefdH„ƒYZkd ekfdI„ƒYZledJ„ZmendKkrWemƒndS(Ls Read and write ZIP files. iÿÿÿÿNt BadZipfileterrort ZIP_STOREDt ZIP_DEFLATEDt is_zipfiletZipInfotZipFilet PyZipFilet LargeZipFilecBseZRS((t__name__t __module__(((s,/opt/alt/python27/lib64/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,/opt/alt/python27/lib64/python2.7/zipfile.pyRsiiiiis<4s4H2LHsPKiiiiiii s<4s4B4HL2L5H2LsPKi i i i iiiis <4s2B4HL2L2HsPKs<4sLQLsPKs <4sQ2H2L4QsPKiPKsClass with attributes describing each file in the ZIP archive.t orig_filenameR&t date_timet compress_typeRYRt create_systemRCtextract_versiontreservedt flag_bitstvolumet internal_attrt external_attrt header_offsettCRCt compress_sizet file_sizet _raw_timet _end_offsettNoNamei¼iicCs,||_|jtdƒƒ}|dkr:|d|!}ntjdkrptj|krp|jtjdƒ}n||_||_|ddkr¡tdƒ‚nt |_ d|_ d|_ t jdkr×d|_n d|_d|_d|_d|_d|_d|_d|_d|_d|_dS( Nit/i¼s+ZIP does not support timestamps before 1980R twin32ii(RZtfindtchrtostseptreplaceR&R[t ValueErrorRR\RYRtsystplatformR]RCR^R_R`RaRbRcRNRi(tselfR&R[t null_byte((s,/opt/alt/python27/lib64/python2.7/zipfile.pyt__init__Gs0                c CsÅ|j}|ddd>|dd>B|dB}|dd>|d d>B|ddB}|jd @rsd}}}n|j}|j}|j}|j}|dkr¾|tkp¸|tk}n|rùd } |tj | dtj | ƒd ||ƒ}n|tks|tkr_|s&t d ƒ‚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.ii¼i iiiii iisZdZejdƒZde d„Z dd„Z dd„Z d „Z dd „Zd „Zd „Zd „ZRS(sZFile-like object for reading an archive member. Is returned by ZipFile.open(). iiis*^(?P[^\r\n]+)|(?P\n|\r\n?)cCsf||_||_||_|j|_|j|_|j|_|jtkrct j dƒ|_ n\|jt kr¿t j|jƒ}|r¦td|j|fƒ‚q¿td|jfƒ‚nd|_d|_d|_d|k|_d|_|jdk r|jd8_n||_|j|_t|dƒrY|j|_tdƒd @|_n d|_dS( Niñÿÿÿscompression type %d (%s)scompression type %dR itUi ReIÿÿÿÿ(t_fileobjt _decryptert_close_fileobjR\t_compress_typeRft_compress_sizet_compress_leftRtzlibt decompressobjt _decompressorRtcompressor_namestgettNotImplementedErrort _unconsumedt _readbuffert_offsett _universalRNtnewlinestmodeR&tnameR$Ret _expected_crctcrc32t _running_crc(RutfileobjRÇtzipinfot decryptert close_fileobjtdescr((s,/opt/alt/python27/lib64/python2.7/zipfile.pyRw,s4             iÿÿÿÿcCs£|j ra|dkra|jjd|jƒd}|dkra|j|j|!}||_|Sn|js}tjj||ƒSd}x|dks¤t|ƒ|krž|jdƒ}|dkrÃ|S|j j |ƒ}|j dƒ}|dk rJ|j dkr g|_ n||j kr-|j j|ƒn|jt|ƒ7_|dS|j dƒ}|dkr|||t|ƒ }n|jt|ƒ7_||7}q†W|S( srRead and return a line from the stream. If limit is specified, at most limit bytes will be read. is iR itnewlinetchunkN(RÅRÃRmRÄtiotBufferedIOBasetreadlineRtpeektPATTERNtsearchtgroupRNRÆR(RutlimitRtlinet readaheadtmatchRÑRÒ((s,/opt/alt/python27/lib64/python2.7/zipfile.pyRÕTs8   !     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(RRÃRÄR"(RutnRÒ((s,/opt/alt/python27/lib64/python2.7/zipfile.pyRÖ†s cCstS(N(R(Ru((s,/opt/alt/python27/lib64/python2.7/zipfile.pytreadable“scCsœd}|dkrd}nxztr—|dkrB|j|ƒ}n2|t|ƒkrp|j|t|ƒƒ}n|St|ƒdkrŠ|S||7}qWdS(s�Read and return up to n bytes. If the argument is omitted, None, or negative, data is read and returned until EOF is reached.. R iÿÿÿÿiN(RNRtread1R(RuRÞtbufR<((s,/opt/alt/python27/lib64/python2.7/zipfile.pyR"–s    cCs^|jdkrdSt||jƒd@|_|rZ|j|jkrZtd|jƒ‚ndS(NIÿÿÿÿsBad CRC-32 for file %r(RÉRNRÊRËRRÈ(Rutnewdatateof((s,/opt/alt/python27/lib64/python2.7/zipfile.pyt _update_crc¨s cCsg|dks|dkr$|j}nt|jƒ|j}|jdkrW||t|jƒkrW||t|jƒ}t||jƒ}t ||jƒ}|j j |ƒ}|jt|ƒ8_|r÷|j dk r÷dj t|j |ƒƒ}n|jtkrE|j|d|jdkƒ|j|j||_d|_qW|j|7_nt|jƒdkr4||kr4|jtkr4|jj|jt|||jƒƒ}|jj|_t|jƒdkoß|jdk}|rþ||jjƒ7}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 RãN(RNtMAX_NRRÃRÄR»RÂRRt MIN_READ_SIZEtminR¶R"R·RtmapR¹RRäRR¾t decompresstunconsumed_tailtflush(RuRÞtlen_readbuffertnbytesR<Rã((s,/opt/alt/python27/lib64/python2.7/zipfile.pyRà²s> ( ! $ cCs8z|jr|jjƒnWdtt|ƒjƒXdS(N(R¸R¶tclosetsuperR´(Ru((s,/opt/alt/python27/lib64/python2.7/zipfile.pyRîæs iN(R R R RåRætretcompileR×RNRRwRÕRÖRßR"RäRàRî(((s,/opt/alt/python27/lib64/python2.7/zipfile.pyR´s  ' 2   4cBseZdZdZdeed„Zd„Zd„Z d„Z d„Z d„Z d„Z d „Zd „Zd „Zed „ƒZejd „ƒZdd„Zddd„Zddd„Zdddd„Zd„Zd„Zddd„Zdd„Zd„Zd„ZRS(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\|dkrtdƒ‚n|tkr*n*|tkrKtsTtd‚qTn td‚||_t|_d|_i|_g|_ ||_ |j dd ƒd|_ }d|_d |_t|tƒrXd|_||_id d6d d6d d6}yt|||ƒ|_Wqtk rT|dkrNd}}t|||ƒ|_qU‚qXn'd |_||_t|ddƒ|_y¤|dkr›|jƒn‡|dkr³t|_no|dkry$|jƒ|jj|jdƒWq"tk r|jjddƒt|_q"Xn tdƒ‚Wn2|j}d|_|jsQ|jƒn‚nXdS(s>Open the ZIP file with mode read "r", write "w" or append "a".Ròtwtas(ZipFile() requires mode "r", "w", or "a"s.Compression requires the (missing) zlib modules(That compression method is not supporteditbR R#twbsr+biRÈisMode must be "r", "w" or "a"N(RòRóRô(RŒRRR¼t _allowZip64Rt _didModifytdebugt NameToInfotfilelistt compressionRqRÇRNR¢t_commentR†t basestringt _filePassedR&R%R Rtgetattrt_RealGetContentsRR)t start_dirRRî(RutfileRÇRüt allowZip64tkeytmodeDictR ((s,/opt/alt/python27/lib64/python2.7/zipfile.pyRwÿsf                                cCs|S(N((Ru((s,/opt/alt/python27/lib64/python2.7/zipfile.pyt __enter__FscCs|jƒdS(N(Rî(Ruttypetvaluet traceback((s,/opt/alt/python27/lib64/python2.7/zipfile.pyt__exit__Isc Csk|j}yt|ƒ}Wntk r8tdƒ‚nX|sKtd‚n|jdkrb|GHn|t}|t}|t|_|t ||}|jdkrÂ||}dG|G|G|GHn|||_ |j |j dƒ|j |ƒ}t j|ƒ}d}x||kr"|j tƒ} t| ƒtkrEtdƒ‚ntjt| ƒ} | ttkrvtdƒ‚n|jdkr�| GHn|j | tƒ} t| ƒ} |j | tƒ| _|j | tƒ| _| t| _| dd!\ | _| _| _ | _!| _"| _#} } | _$| _%| _&| d d !\| _'| _(| _)| | _*| d ?d | d ?d @| d@| d?| d ?d@| d@df| _+| j,ƒ| j|| _| j-ƒ| _.|j/j0| ƒ| |j1| j.<|t| t| t| t}|jdkr dG|GHq q W|j }x8t2|j/dd„dt3ƒD]}||_4|j}qKWdS(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 i¼iii i?ttotalRcSs|jS(N(Rd(tzinfo((s,/opt/alt/python27/lib64/python2.7/zipfile.pyt�R treverseN(5R RRRRùR6R7t _ECD_COMMENTRýR8RR)R"t cStringIOtStringIOtsizeCentralDirRR*RtstructCentralDirt _CD_SIGNATUREtstringCentralDirt_CD_FILENAME_LENGTHRt_CD_EXTRA_FIELD_LENGTHRt_CD_COMMENT_LENGTHRYt_CD_LOCAL_HEADER_OFFSETRdRCR]R^R_R`R\ReRfRgRaRbRcRhR[R’R‹R&RûRRútsortedRRi(RuR R;tsize_cdt offset_cdtconcattinferredR<R tcentdirR&txtttdt end_offsetR ((s,/opt/alt/python27/lib64/python2.7/zipfile.pyRLsl          I & "    cCs.g}x!|jD]}|j|jƒqW|S(s+Return a list of file names in the archive.(RûRR&(RutlR<((s,/opt/alt/python27/lib64/python2.7/zipfile.pytnamelist•scCs|jS(sJReturn a list of class ZipInfo instances for files in the archive.(Rû(Ru((s,/opt/alt/python27/lib64/python2.7/zipfile.pytinfolistœscCsJdd 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((RûR[R&Rg(RuR tdate((s,/opt/alt/python27/lib64/python2.7/zipfile.pytprintdir¡s cCsnd}xa|jD]V}y8|j|jdƒ�}x|j|ƒrFq4WWdQXWqtk re|jSXqWdS(s%Read all the files and check the CRC.iiRòNi(RûR%R&R"R(Rut chunk_sizeR tf((s,/opt/alt/python27/lib64/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(RúRÀRNtKeyError(RuRÈtinfo((s,/opt/alt/python27/lib64/python2.7/zipfile.pytgetinfoµs  cCs ||_dS(s)Set default password for encrypted files.N(R¢(RuR¢((s,/opt/alt/python27/lib64/python2.7/zipfile.pyt setpassword¾scCs|jS(s.The comment text associated with the ZIP file.(Rý(Ru((s,/opt/alt/python27/lib64/python2.7/zipfile.pyRYÂscCsXt|ƒtkrBddl}|jdtddƒ|t }n||_t|_dS(Niÿÿÿÿs3Archive comment is too long; truncating to %d bytest stackleveli(RtZIP_MAX_COMMENTtwarningstwarnRýRRø(RuRYR4((s,/opt/alt/python27/lib64/python2.7/zipfile.pyRYÇs    cCs|j|d|ƒjƒS(s)Return file bytes (as a string) for name.Rò(R%R"(RuRÈR¢((s,/opt/alt/python27/lib64/python2.7/zipfile.pyR"ÒscCs¥|dkrtd‚n|js-td‚n|jrH|j}t}nt|jdƒ}t}y!t|tƒr{|}n|j |ƒ}|j |j dƒ|j t ƒ}t|ƒt krÍtdƒ‚ntjt|ƒ}|ttkrþtd ƒ‚n|j |tƒ}|tr/|j |tƒn||jkrWtd |j|f‚n|jdk r˜|jƒ|j|jkr˜td |jƒ‚n|jd @} d} | rg|sÃ|j}n|sÙtd |‚nt|ƒ} |j dƒ} t| | dd!ƒ} |jd@r+|j d?d@} n|j!d?d@} t"| dƒ| krgtd|ƒ‚qgnt#|||| d|ƒSWn|rš|j$ƒn‚nXdS(s#Return file-like object for 'name'.RòRµtrUs&open() requires mode "r", "U", or "rU"s3Attempt to read ZIP archive that was already closedR#isTruncated file headers Bad magic number for file headers3File name in directory "%s" and header "%s" differ.s*Overlapped entries: %s (possible zip bomb)is6File %s is encrypted, password required for extractioni iiÿii sBad password for fileRÏN(RòRµR6(%RŒR RÿRR%R&RR†RR0R)RdR"tsizeFileHeaderRRR*RR|t _FH_SIGNATURER}t_FH_FILENAME_LENGTHt_FH_EXTRA_FIELD_LENGTHRZRiRNRLRfR`R¢R”RèRhReR›R´Rî(RuRÈRÇR¢tzef_filet should_closeR tfheadertfnamet is_encryptedtzdtbytestht check_byte((s,/opt/alt/python27/lib64/python2.7/zipfile.pyR%Ösj                cCsOt|tƒs!|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(R†RR0RNRotgetcwdt_extract_member(RutmembertpathR¢((s,/opt/alt/python27/lib64/python2.7/zipfile.pytextract)s  cCsC|dkr|jƒ}nx!|D]}|j|||ƒq"WdS(sõExtract 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(RNR&RH(RuRGtmembersR¢RÍ((s,/opt/alt/python27/lib64/python2.7/zipfile.pyt extractall7s  c Cs|jjdtjjƒ}tjjrH|jtjjtjjƒ}ntjj|ƒd}tjjjd„|jtjjƒDƒƒ}tjjdkr2d}t |t ƒrÆd„|Dƒ}nt j |dt |ƒƒ}|j|ƒ}d„|jtjjƒDƒ}tjjjd „|Dƒƒ}ntjj||ƒ}tjj|ƒ}tjj|ƒ}|r”tjj|ƒ r”tj|ƒn|jd dkrÍtjj|ƒsÉtj|ƒn|S|j|d |ƒ�/}t|d ƒ�} tj|| ƒWd QXWd QX|S(sbExtract the ZipInfo object 'member' to a physical file on the path targetpath. Rkicss6|],}|dtjjtjjfkr|VqdS(R N(RoRGtcurdirtpardir(t.0R!((s,/opt/alt/python27/lib64/python2.7/zipfile.pys Pss\s:<>|"?*cSs%i|]}tdƒt|ƒ“qS(t_(R›(RMR¤((s,/opt/alt/python27/lib64/python2.7/zipfile.pys Vs RNcss|]}|jdƒVqdS(t.N(trstrip(RMR!((s,/opt/alt/python27/lib64/python2.7/zipfile.pys [scss|]}|r|VqdS(N((RMR!((s,/opt/alt/python27/lib64/python2.7/zipfile.pys \siÿÿÿÿR¢RöN(R&RqRoRGRptaltsept splitdriveRtsplitR†R‡tstringt maketransRt translatetnormpathtdirnametexiststmakedirstisdirtmkdirR%Rtshutilt copyfileobj( RuRFt targetpathR¢tarcnametillegalR—t upperdirstsourcettarget((s,/opt/alt/python27/lib64/python2.7/zipfile.pyRECs4 !."cCs+|j|jkr;ddl}|jd|jddƒn|jdkrVtd‚n|jsktd ‚n|jtkr�t r�td ‚n|jt tfkr®td ‚n|j s'd}t |jƒtkrÛd }n0|jtkród }n|jtkr d}n|r't|dƒ‚q'ndS(s6Check for errors before writing a file to the archive.iÿÿÿÿNsDuplicate name: %rR2iRóRôs 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 supporteds Files counttFilesizes Zipfile sizes would require ZIP64 extensions(RóRô(R&RúR4R5RÇRŒR R\RR¼RR÷RNRRûtZIP_FILECOUNT_LIMITRgRxRdR(RuR R4trequires_zip64((s,/opt/alt/python27/lib64/python2.7/zipfile.pyt _writecheckqs2          cCs|jstdƒ‚ntj|ƒ}tj|jƒ}tj|jƒ}|dd!}|d krm|}ntj j tj j |ƒdƒ}x*|dtj tjfkr»|d}q’W|rÏ|d7}nt||ƒ}|dd@d>|_|rt|_n$|d kr |j|_n ||_|j|_d|_|jjƒ|_|j|ƒt|_|rÓd|_d|_d|_|jdO_|jj|ƒ||j |j!<|jj"|j#t$ƒƒd St%|d ƒ� } d|_} d|_} |j&o|jd t'k} |jj"|j#| ƒƒ|jt(krat)j*t)j+t)j,d ƒ} nd } d}xx| j-dƒ}|s‰Pn|t.|ƒ}t/|| ƒd@} | rÔ| j0|ƒ}| t.|ƒ} n|jj"|ƒqpWWd QX| r,| j1ƒ}| t.|ƒ} |jj"|ƒ| |_n ||_| |_||_| r�|j&r�|t'krrtdƒ‚n| t'kr�tdƒ‚q�n|jjƒ}|jj2|jdƒ|jj"|j#| ƒƒ|jj2|dƒ|jj|ƒ||j |j!|dd>B|d B}|d d >|d d>B|dd B}g}|jtksÆ|j tkrõ|j |jƒ|j |j ƒd }d }n|j}|j }|j tkr/|j |j ƒd} n |j } |j } |r±t | dƒ} tjddt|ƒddt|ƒ|Œ| } td|jƒ} td|jƒ} n|j} |j} y…|jƒ\} }tjtt| |j| |j||j|||j||t| ƒt| ƒt|jƒd|j|j| ƒ}WnŠtk rÔtj tt| |j| |j|j!|j|||j||t|j"ƒt| ƒt|jƒd|j|j| fIJ‚nX|jj#|ƒ|jj#| ƒ|jj#| ƒ|jj#|jƒqGW|jjƒ}t|jƒ}||}|}d}|t$kred}n*|tkrzd}n|tkr�d}n|rM|j%s±t&|dƒ‚ntjt't(t)ddddd||||ƒ }|jj#|ƒtjt*t+d|dƒ}|jj#|ƒt,|dƒ}t,|d ƒ}t,|d ƒ}ntjt-t.dd||||t|j/ƒƒ }|jj#|ƒ|jj#|j/ƒ|jj0ƒnWd|j}d|_|j1sÜ|j2ƒnXdS(sJClose the file, and for mode "w" and "a" write the ending records.NRóRôii¼i iiiii iIÿÿÿÿlÿÿsR`tdirlistR&RGtroottext((s,/opt/alt/python27/lib64/python2.7/zipfile.pyR’”sZ      !           c Cs8|d}|d}|d}tjj|ƒr]tj|ƒjtj|ƒjkr]|}n¢tjj|ƒ s”tj|ƒjtj|ƒjkrùddl}|jrµdG|GHny|j||dt ƒWn|j k rï}|j GHnX|}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.pyoiÿÿÿÿNt Compilingis%s/%s( RoRGR�RiRnt py_compileRùRñRNRtPyCompileErrortmsgRS( RuR“R”tfile_pytfile_pyctfile_pyoR>R›terrt archivename((s,/opt/alt/python27/lib64/python2.7/zipfile.pyRŽÕs*   $ $     (R R R R’RŽ(((s,/opt/alt/python27/lib64/python2.7/zipfile.pyR‘s Ac s™ddl}|jdƒ}|dkr7tjd}n| sN|ddkrc|GHtjdƒn|ddkrÃt|ƒd krš|GHtjdƒnt|dd ƒ�}|jƒWdQXnÒ|ddkrAt|ƒd krú|GHtjdƒnt|dd ƒ�}|j ƒ}WdQX|r9d j |ƒGHnd GHnT|ddkr¨t|ƒd krx|GHtjdƒnt|dd ƒ�}|j |d ƒWdQXní|ddkr•t|ƒd krß|GHtjdƒn‡fd†‰t|dddt ƒ�‰}x|d D]s}t jj|ƒ}|sTt jjt jj|ƒƒ}n|dt jt jfkrxd}nˆ|||ƒqWWdQXndS(NiÿÿÿÿsE 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-tiRòs.The following enclosed file is corrupted: {!r}s Done testingics¢tjj|ƒr(|j||tƒnvtjj|ƒrž|rS|j||ƒnxHtj|ƒD]4}ˆ|tjj||ƒtjj||ƒƒqcWndS(N(RoRGR�RpRR[R�R(tzfRGtzippathtnm(taddToZip(s,/opt/alt/python27/lib64/python2.7/zipfile.pyR¦"sRóRR (s-ls-cs-es-t(ttextwraptdedentRNRstargvtexitRRR*R-tformatRJRRoRGR”RXRKRL(targsR§tUSAGER£tbadfileRGR¤((R¦s,/opt/alt/python27/lib64/python2.7/zipfile.pytmainôsT    ! t__main__(oR R*RoRlRsR]tbinasciiRRiRÓRðRTR¼RÊt ImportErrorRNt__all__t ExceptionRRRRxRfR3RRRPRORzRMR1R2R3R4R5R6R7RTRR8RRRRt_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_SIZERRRt_CD_DISK_NUMBER_STARTt_CD_INTERNAL_FILE_ATTRIBUTESt_CD_EXTERNAL_FILE_ATTRIBUTESRR|R}R7R8t_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_SIZER9R:R+R,R(R0R/R-t_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_CENTDIRRytStructR RR!RRKRtobjectRR”R¿RÔR´RRR¯R (((s,/opt/alt/python27/lib64/python2.7/zipfile.pytsô<$            < < < Ðÿÿ¥c B