
\Kc           @   s_  d  Z  d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z y d d k Z Wn e j
 o e	 Z n Xd d d d d d d	 d
 d g	 Z
 d e f d     YZ d e f d     YZ e Z d d >d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z d Z  d Z! d  Z" d! Z# d Z$ d" Z% d# Z& d$ Z' d% Z( d& Z) d' Z* d( Z+ d) Z, d* Z- d+ Z. d Z/ d Z0 d Z1 d Z2 d Z3 d Z4 d  Z5 d! Z6 d Z7 d" Z8 d# Z9 d$ Z: d,   Z; d-   Z< d.   Z= d e> f d/     YZ? d	 f  d0     YZ@ d
 e@ f d1     YZA e	 d2  ZB eC d3 j o eB   n d S(4   s   
Read and write ZIP files.
iNt
   BadZipfilet   errort
   ZIP_STOREDt   ZIP_DEFLATEDt
   is_zipfilet   ZipInfot   ZipFilet	   PyZipFilet   LargeZipFilec           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s   /usr/lib/python2.5/zipfile.pyR       s   c           B   s   e  Z d  Z RS(   su   
    Raised when writing a zipfile, the zipfile requires ZIP64 extensions
    and those extensions are disabled.
    (   R	   R
   t   __doc__(    (    (    s   /usr/lib/python2.5/zipfile.pyR      s   i   i   i    i   s   <4s4H2LHs   PKs   <4s4B4HlLL5HLLs   PKs   <4s2B4HlLL2Hs   PKs   <4slqls   PKs   <4sqhhllqqqqs   PKi   i   i   i   i   i   i	   i
   i   i   i   i   i   i   i   i   c         C   sR   y8 t  |  d  } t |  } | i   | o t Sn Wn t j
 o n Xt S(   s?   Quickly see if file is a ZIP file by checking the magic number.t   rb(   t   opent   _EndRecDatat   closet   Truet   IOErrort   False(   t   filenamet   fpint   endrec(    (    s   /usr/lib/python2.5/zipfile.pyR   R   s    
c      
   C   sJ  t  i t  } |  i | | d  |  i |  } t  i t |  \ } } } } | t j o | Sn | d j p | d j o t d   n t  i t  }	 |  i | | |	 d  |  i |	  } t  i t |  \
 } }
 } } } } } } } } | t	 j o | Sn | | d <| | d <| | d <| | d <| | d <| | d <| S(	   sM   
    Read the ZIP64 end-of-archive records and use that to update endrec
    i   i    i   s3   zipfiles that span multiple disks are not supportedi   i   i   i   (
   t   structt   calcsizet   structEndArchive64Locatort   seekt   readt   unpackt   stringEndArchive64LocatorR    t   structEndArchive64t   stringEndArchive64(   R   t   offsetR   t   locatorSizet   datat   sigt   disknot   relofft   diskst   endArchiveSizet   szt   create_versiont   read_versiont   disk_numt   disk_dirt   dircountt	   dircount2t   dirsizet	   diroffset(    (    s   /usr/lib/python2.5/zipfile.pyt   _EndRecData64^   s*    0





c         C   s  |  i  d d  |  i   d } |  i   } | d d !t j o | d d j oz t i t |  } t |  } | i d  | i | d  | d	 d
 j p | d	 d j o t	 |  d |  Sn | Sn t
 | d  } |  i  | | d  |  i   } | i t  } | d j o t i t | | | d ! } t |  } | | d } | d t |  j oe | i |  | i | | |  | d	 d
 j p | d	 d j o t	 |  | | |  Sn | Sqn d S(   s   Return 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.ii   i   i    i   it     t    iiI    i   i   Ni   (   R   t   tellR   t   stringEndArchiveR   R   t   structEndArchivet   listt   appendR0   t   mint   rfindt   len(   R   t   filesizeR!   R   t	   END_BLOCKt   startt   comment(    (    s   /usr/lib/python2.5/zipfile.pyR      s4    %""c           B   s5   e  Z d  Z d Z d d d  Z d   Z d   Z RS(   s>   Class with attributes describing each file in the ZIP archive.t   orig_filenameR   t	   date_timet   compress_typeR>   t   extrat   create_systemR(   t   extract_versiont   reservedt	   flag_bitst   volumet   internal_attrt   external_attrt   header_offsett   CRCt   compress_sizet	   file_sizet   NoNamei  i   i    c         C   s  | |  _  | i t d   } | d j o | d | !} n t i d j o) t i | j o | i t i d  } n | |  _ | |  _ t |  _	 d |  _
 d |  _ t i d j o d |  _ n
 d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d |  _ d  S(   Ni    t   /R2   t   win32i   i   (   R?   t   findt   chrt   ost   sept   replaceR   R@   R   RA   R>   RB   t   syst   platformRC   R(   RD   RE   RF   RG   RH   RI   (   t   selfR   R@   t	   null_byte(    (    s   /usr/lib/python2.5/zipfile.pyt   __init__   s*    	 												c   
      C   s|  |  i  } | d d d >| d d >B| d B} | d d >| d	 d >B| d d B} |  i d
 @o d } } } n |  i } |  i } |  i } |  i } | t j p | t j ol d } | t i | d t i	 |  d	 | |  } d } d } t
 d |  i  |  _ t
 d |  i  |  _ n t i t t |  i |  i |  i |  i | | | | | t |  i  t |   }	 |	 |  i | S(   s'   Return the per-file header as a string.i    i  i	   i   i   i   i   i   i   i   s   <hhqqI    i-   (   R@   RF   RK   RL   RM   RB   t   ZIP64_LIMITR   t   packR   t   maxRD   R(   t   structFileHeadert   stringFileHeaderRE   RA   R:   R   (
   RX   t   dtt   dosdatet   dostimeRK   RL   RM   RB   t   fmtt   header(    (    s   /usr/lib/python2.5/zipfile.pyt
   FileHeader   s.    	&&				 c         C   s  |  i  } t i } x| o| d | d   \ } } | d j o`| d j o | d | d d ! } nv | d j o | d | d d	 ! } nO | d
 j o | d | d d ! } n( | d j o
 d } n t d | f  d } |  i d j p |  i d j o | | |  _ | d 7} n |  i d j p |  i d j o | | |  _ | d 7} n |  i d j p |  i d j o$ |  i } | | |  _ | d 7} qn | | d } q Wd  S(   Ns   <hhi   i   i   s   <qqqi   i   s   <qqi   i   s   <qi   i    s   Corrupt extra field %sil    (    (   RB   R   R   t   RuntimeErrorRM   RL   RJ   (   RX   RB   R   t   tpt   lnt   countst   idxt   old(    (    s   /usr/lib/python2.5/zipfile.pyt   _decodeExtra  s6    		 
   	(   s   orig_filenames   filenames	   date_times   compress_types   comments   extras   create_systems   create_versions   extract_versions   reserveds	   flag_bitss   volumes   internal_attrs   external_attrs   header_offsets   CRCs   compress_sizes	   file_size(   i  i   i   i    i    i    (   R	   R
   R   t	   __slots__RZ   Re   Rl   (    (    (    s   /usr/lib/python2.5/zipfile.pyR      s,                    &	!c           B   s   e  Z d  Z d Z d e e d  Z d   Z d   Z	 d   Z
 d   Z d   Z d   Z d	   Z d
   Z d   Z d d d  Z d   Z d   Z d   Z RS(   sc   Class with methods to open, read, write, close, list zip files.

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

    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.

    t   rc         C   s  | |  _  t |  _ | t j o n/ | t j o t p t d  qQ n
 t d  d |  _ h  |  _ g  |  _	 | |  _
 | i d d  d |  _ } t | t  oM d |  _ | |  _ h  d d <d d	 <d
 d <} t | | |  |  _ n( d |  _ | |  _ t | d d  |  _ | d j o |  i   n | d	 j o n | d j oQ y$ |  i   |  i i |  i d  Wqt j
 o |  i i d d  qXn. |  i p |  i i   d |  _ n t d  d S(   s>   Open the ZIP file with mode read "r", write "w" or append "a".s.   Compression requires the (missing) zlib modules(   That compression method is not supportedi    t   bR2   R   Rn   t   wbt   ws   r+bt   ai   t   namei   s   Mode must be "r", "w" or "a"N(   t   _allowZip64R   t
   _didModifyR   R   t   zlibRf   t   debugt
   NameToInfot   filelistt   compressionRU   t   modet
   isinstancet
   basestringt   _filePassedR   R   t   fpt   getattrt   Nonet   _GetContentst   _RealGetContentsR   t	   start_dirR    R   (   RX   t   fileR{   Rz   t
   allowZip64t   keyt   modeDict(    (    s   /usr/lib/python2.5/zipfile.pyRZ   <  sH    									!		

c         C   sO   y |  i    Wn: t j
 o. |  i p |  i i   d |  _ n   n Xd S(   sO   Read the directory, making sure we close the file if the format
        is bad.N(   R   R    R~   R   R   R   (   RX   (    (    s   /usr/lib/python2.5/zipfile.pyR   j  s    
c         C   s  |  i  } t |  } | p t d  n |  i d j o	 | GHn | d } | d } | d |  _ | d t j o | d | d d } n | d | } | | } |  i d	 j o d
 G| G| G| GHn | | |  _ | i |  i d  | i |  } t	 i
 |  } d } x| | j  o| i d  }	 | d } |	 d d !t j o t d  n t i t |	  }	 |  i d	 j o	 |	 GHn | i |	 t  }
 t |
  } | i |	 t  | _ | i |	 t  | _ | |	 t |	 t |	 t } |	 t | _ |	 d d !\ | _ | _ | _ | _ | _ | _ } } | _ | _ | _ |	 d d !\ | _ | _  | _! | d ?d | d ?d @| d @| d ?| d ?d @| d @d	 f | _" | i#   | i | | _ |  i$ i% |  | |  i& | i' <|  i d	 j o d G| GHqqWd S(   s/   Read in the table of contents for the ZIP file.s   File is not a zip filei   i   i   i   i	   i8   i   i   s   given, inferred, offseti    i.   i   s&   Bad magic number for central directoryi   i   i   i  i   i   i?   t   totalN((   R   R   R    Rw   R>   R[   R   R   R   t	   cStringIOt   StringIOt   stringCentralDirR   R   t   structCentralDirt   _CD_FILENAME_LENGTHR   t   _CD_EXTRA_FIELD_LENGTHRB   t   _CD_COMMENT_LENGTHt   _CD_LOCAL_HEADER_OFFSETRJ   R(   RC   RD   RE   RF   RA   RK   RL   RM   RG   RH   RI   R@   Rl   Ry   R7   Rx   R   (   RX   R   R   t   size_cdt	   offset_cdt   xt   concatR!   R   t   centdirR   t   tt   d(    (    s   /usr/lib/python2.5/zipfile.pyR   u  sZ    		


 
	I&
c         C   s.   g  } x! |  i  D] } | i | i  q W| S(   s+   Return a list of file names in the archive.(   Ry   R7   R   (   RX   t   lR!   (    (    s   /usr/lib/python2.5/zipfile.pyt   namelist  s
    
 c         C   s   |  i  S(   sJ   Return a list of class ZipInfo instances for files in the
        archive.(   Ry   (   RX   (    (    s   /usr/lib/python2.5/zipfile.pyt   infolist  s    c         C   sJ   d d	 GHx: |  i  D]/ } d | i d  } d | i | | i f GHq Wd S(
   s+   Print a table of contents for the zip file.s   %-46s %19s %12ss	   File Names   Modified    t   Sizes   %d-%02d-%02d %02d:%02d:%02di   s   %-46s %s %12dN(   s	   File Names   Modified    R   (   Ry   R@   R   RM   (   RX   t   zinfot   date(    (    s   /usr/lib/python2.5/zipfile.pyt   printdir  s
    	
 c         C   sI   xB |  i  D]7 } y |  i | i  Wq
 t j
 o | i Sq
 Xq
 Wd S(   s%   Read all the files and check the CRC.N(   Ry   R   R   R    (   RX   R   (    (    s   /usr/lib/python2.5/zipfile.pyt   testzip  s    
 c         C   s   |  i  | S(   s,   Return the instance of ZipInfo given 'name'.(   Rx   (   RX   Rs   (    (    s   /usr/lib/python2.5/zipfile.pyt   getinfo  s    c   
      C   s
  |  i  d j o t d  n |  i p t d  n |  i |  } |  i i   } |  i i | i d  |  i i d  } | d d !t j o t	 d  n t
 i t |  } |  i i | t  } | t o |  i i | t  n | | i j o t	 d	 | i | f  n |  i i | i  } |  i i | d  | i t j o n | i t j od t p t d
  n t i d  } | i |  } | i d  | i   } | o | | } qn t	 d | i | f  t i |  }	 |	 | i j o t	 d |  n | S(   s)   Return file bytes (as a string) for name.Rn   Rr   s   read() requires mode "r" or "a"s3   Attempt to read ZIP archive that was already closedi    i   i   s    Bad magic number for file headers3   File name in directory "%s" and header "%s" differ.s1   De-compression requires the (missing) zlib moduleit   Zs-   Unsupported compression method %d for file %ss   Bad CRC-32 for file %s(   Rn   Rr   (   R{   Rf   R   R   R3   R   RJ   R   R_   R    R   R   R^   t   _FH_FILENAME_LENGTHt   _FH_EXTRA_FIELD_LENGTHR?   RL   RA   R   R   Rv   t   decompressobjt
   decompresst   flusht   binasciit   crc32RK   (
   RX   Rs   R   t   filepost   fheadert   fnamet   bytest   dct   ext   crc(    (    s   /usr/lib/python2.5/zipfile.pyR     sN    


c         C   s  | i  |  i j o |  i o d G| i  GHq1 n |  i d j o t d  n |  i p t d  n | i t j o t o t d  n | i t	 t f j o t d  n | i
 t j o |  i p t d   q n | i t j o |  i p t d	   q	n d
 S(   s6   Check for errors before writing a file to the archive.s   Duplicate name:Rq   Rr   s    write() requires mode "w" or "a"s4   Attempt to write ZIP archive that was already closeds.   Compression requires the (missing) zlib modules(   That compression method is not supporteds'   Filesize would require ZIP64 extensionss+   Zipfile size would require ZIP64 extensionsN(   Rq   Rr   (   R   Rx   Rw   R{   Rf   R   RA   R   Rv   R   RM   R[   Rt   R   RJ   (   RX   R   (    (    s   /usr/lib/python2.5/zipfile.pyt   _writecheck  s(    






c         C   s  t  i |  } t i | i  } | d d !} | d j o
 | } n t  i i t  i i |  d  } x, | d t  i	 t  i
 f j o | d } qj Wt | |  } | d d @d >| _ | d j o |  i | _ n
 | | _ | i | _ d | _ |  i i   | _ |  i |  t |  _ t | d  } d | _ }	 d | _ }
 d | _ } |  i i | i    | i t j o t i t i  t i! d  } n d } xz | i" d  } | p Pn | t# |  } t$ i% | |	  }	 | o# | i& |  } |
 t# |  }
 n |  i i |  q| i'   | o9 | i(   } |
 t# |  }
 |  i i |  |
 | _ n
 | | _ |	 | _ | | _ |  i i   } |  i i) | i d
 d  |  i i t* i+ d | i | i | i   |  i i) | d  |  i, i- |  | |  i. | i/ <d S(   sL   Put the bytes from filename into the archive under the name
        arcname.i    i   i   i  l    R   ii   i   i   s   <lLLNi    (0   RS   t   statt   timet	   localtimet   st_mtimeR   t   patht   normpatht
   splitdriveRT   t   altsepR   RI   Rz   RA   t   st_sizeRM   RF   R   R3   RJ   R   R   Ru   R   RK   RL   t   writeRe   R   Rv   t   compressobjt   Z_DEFAULT_COMPRESSIONt   DEFLATEDR   R:   R   R   t   compressR   R   R   R   R\   Ry   R7   Rx   R   (   RX   R   t   arcnameRA   t   stt   mtimeR@   R   R   RK   RL   RM   t   cmprt   buft   position(    (    s   /usr/lib/python2.5/zipfile.pyR     sl    
" 			
			c         C   s  t  | t  p8 t d | d t i t i    d   } |  i | _ n | } t |  | _ |  i i	   | _
 |  i |  t |  _ t i |  | _ | i t j oG t i t i t i d  } | i |  | i   } t |  | _ n | i | _ |  i i	   | _
 |  i i | i    |  i i |  |  i i   | i d @o/ |  i i t i d | i | i | i   n |  i i |  | |  i  | i! <d S(   s   Write 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.R   R@   i   ii   s   <lLLN("   R|   R   R   R   Rz   RA   R:   RM   R   R3   RJ   R   R   Ru   R   R   RK   R   Rv   R   R   R   R   R   RL   R   Re   RF   R   R\   Ry   R7   Rx   R   (   RX   t   zinfo_or_arcnameR   R   t   co(    (    s   /usr/lib/python2.5/zipfile.pyt   writestr[  s2    	c         C   s   |  i    d S(   s2   Call the "close()" method in case the user forgot.N(   R   (   RX   (    (    s   /usr/lib/python2.5/zipfile.pyt   __del__|  s    c         C   s  |  i  d j o d Sn |  i d j o|  i o~d } |  i  i   } xD|  i D]9} | d } | i } | d d d >| d d >B| d	 B} | d
 d >| d d >B| d d	 B} g  } | i t j p | i	 t j o0 | i
 | i  | i
 | i	  d } d }	 n | i } | i	 }	 | i t j o | i
 | i  d }
 n
 | i }
 | i } | o\ t i d d t |  d d t |  |  | } t d | i  } t d | i  } n | i } | i } t i t t | | i | | i | i | i | | | i |	 | t | i  t |  t | i  d | i | i |
  } |  i  i |  |  i  i | i  |  i  i |  |  i  i | i  qQ W|  i  i   } | t j o t i t t  d d d d d | | | | |  } |  i  i |  t i t! t" d | d  } |  i  i |  |  i  i   } t i t# t$ d d | | | | d d 	 } |  i  i |  n< t i t# t$ d d | | | | | d 	 } |  i  i |  |  i  i%   n |  i& p |  i  i'   n d |  _  d S(   sJ   Close the file, and for mode "w" and "a" write the ending
        records.NRq   Rr   i    i   i  i	   i   i   i   i   i   I    is   <hht   qi   i-   i,   (   Rq   Rr   ((   R   R   R{   Ru   R3   Ry   R@   RM   R[   RL   R7   RJ   RB   R   R\   R:   R]   RD   R(   R   R   RC   RE   RF   RA   RK   R   R>   RH   RI   R   R   R   R   R   R5   R4   R   R~   R   (   RX   t   countt   pos1R   R`   Ra   Rb   RB   RM   RL   RJ   t
   extra_dataRD   R(   R   t   pos2t   zip64endrect   zip64locrect   pos3R   (    (    s   /usr/lib/python2.5/zipfile.pyR     s    
 
	&&
		
					!	%
N(   R	   R
   R   R   R   R   R   RZ   R   R   R   R   R   R   R   R   R   R   R   R   R   (    (    (    s   /usr/lib/python2.5/zipfile.pyR   +  s    .		;							3	A	!	c           B   s#   e  Z d  Z d d  Z d   Z RS(   sD   Class to create ZIP archives with Python library files and packages.R2   c         C   s  t  i i |  \ } } t  i i |  oit  i i | d  } t  i i |  o| o d | | f } n | } |  i o d G| Gd G| GHn |  i | d d !|  \ } } |  i o d G| GHn |  i | |  t  i	 |  } | i
 d  x| D] }	 t  i i | |	  }
 t  i i |	  \ } } t  i i |
  o: t  i i t  i i |
 d   o |  i |
 |  qq | d j oJ |  i |
 d d !|  \ } } |  i o d G| GHn |  i | |  q q Wq|  i o d	 G| GHn xt  i	 |  D] }	 t  i i | |	  }
 t  i i |	  \ } } | d j oJ |  i |
 d d !|  \ } } |  i o d G| GHn |  i | |  qqWne | d d j o t d
  n |  i | d d !|  \ } } |  i o d G| GHn |  i | |  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/%ss   Adding package int   asi    it   Addings   .pys   Adding files from directorys.   Files added with writepy() must end with ".py"s   Adding fileN(   RS   R   t   splitt   isdirt   joint   isfileRw   t   _get_codenameR   t   listdirt   removet   splitextt   writepyRf   (   RX   t   pathnamet   basenamet   dirRs   t   initnameR   R   t   dirlistR   R   t   roott   ext(    (    s   /usr/lib/python2.5/zipfile.pyR     s^    

 "

 


c   
   	   C   sD  | d } | d } | d } t  i i |  o/ t  i |  i t  i |  i j o
 | } n t  i i |  p% t  i |  i t  i |  i j  oj d d k } |  i o d G| GHn y | i | | d t	  Wn  | i
 j
 o } | i GHn X| } n | } t  i i |  d }	 | o d | |	 f }	 n | |	 f S(	   s   Return (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	   Compilingi   s   %s/%s(   RS   R   R   R   R   t
   py_compileRw   t   compileR   R   t   PyCompileErrort   msgR   (
   RX   R   R   t   file_pyt   file_pyct   file_pyoR   R   t   errt   archivename(    (    s   /usr/lib/python2.5/zipfile.pyR     s*    


%
%

(   R	   R
   R   R   R   (    (    (    s   /usr/lib/python2.5/zipfile.pyR     s   Ac   
   
      s  d d  k  } | i d  } |  d  j o t i d }  n |  p |  d d j o | GHt i d  n |  d d j oT t |   d	 j o | GHt i d  n t |  d d
  } | i   | i	   n%|  d d j oO t |   d	 j o | GHt i d  n t |  d d
  } | i
   d GHn|  d d j ot |   d j o | GHt i d  n t |  d d
  } |  d	 } x | i   D] } | i d  o t i i | | d	  } n t i i | |  } t i i |  } t i i |  p t i |  n t | d  } | i | i |   | i	   qW| i	   n |  d d j o t |   d j  o | GHt i d  n   f d     t |  d d d t } x. |  d	 D]" }	   | |	 t i i |	   qW| i	   n d  S(   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
        i   i    s   -ls   -cs   -es   -ti   Rn   s   Done testingi   s   ./Rp   c            s   t  i i |  o |  i | | t  n` t  i i |  oL xI t  i |  D]4 }   |  t  i i | |  t  i i | |   qM Wn d  S(   N(   RS   R   R   R   R   R   R   R   (   t   zfR   t   zippatht   nm(   t   addToZip(    s   /usr/lib/python2.5/zipfile.pyR   t  s     Rq   R   (   s   -ls   -cs   -es   -t(   t   textwrapt   dedentR   RV   t   argvt   exitR:   R   R   R   R   R   t
   startswithRS   R   R   t   dirnamet   existst   makedirsR   R   R   R   R   (
   t   argsR   t   USAGER   t   outR   t   tgtt   tgtdirR   t   src(    (   R   s   /usr/lib/python2.5/zipfile.pyt   main:  sd    	

	
 	  t   __main__(D   R   R   RS   R   RV   R   R   Rv   t   ImportErrorR   t   __all__t	   ExceptionR    R   R   R[   R   R   R5   R4   R   R   R^   R_   R   R   R   R   t   _CD_SIGNATUREt   _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_SIZER   R   R   t   _CD_DISK_NUMBER_STARTt   _CD_INTERNAL_FILE_ATTRIBUTESt   _CD_EXTERNAL_FILE_ATTRIBUTESR   t   _FH_SIGNATUREt   _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   R   R0   R   t   objectR   R   R   R   R	   (    (    (    s   /usr/lib/python2.5/zipfile.pys   <module>   s   0		"	' cI