????
Your IP : 3.141.244.160
�
� f [c@s*dZdZdZdZdZdZddlZddlZddlZddl Z ddl
Z
ddlZddlZddl
Z
ddlZyddlZddlZWnek
r�eZZYnXeefZyeef7ZWnek
r�YnXdd d
dgZddlmZd
ZdZedZdZdZ dZ!dZ"dZ#dZ$d
Z%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.dZ/dZ0d Z1d!Z2dZ3d"Z4d#Z5e4Z6e$e%e&e'e*e+e,e(e)e-e.e/fZ7e$e%e,e/fZ8e-e.e/fZ9d$d%d&d'd(d)d*d+fZ:d$d%d*d+hZ;ie<d,6e<d-6e<d'6e=d(6e=d)6e=d&6Z>d.Z?d/Z@d0ZAd1ZBd2ZCd3ZDd4ZEd5ZFdZGd6ZHd7ZId8ZJd9ZKd:ZLd;ZMd<ZNd#ZOd"ZPejQd=d>fkr�d?ZRnejS�ZRd@dA�ZTdBdC�ZUdDdE�ZVd;e6dFdG�ZWdHdI�ZXedJdK�ZYdLdM�ZZdNdO�Z[GdPd�de\�Z]GdQdR�dRe]�Z^GdSdT�dTe]�Z_GdUdV�dVe]�Z`GdWdX�dXe]�ZaGdYdZ�dZe]�ZbGd[d\�d\eb�ZcGd]d^�d^eb�ZdGd_d`�d`eb�ZeGdadb�dbeb�ZfGdcdd�ddeb�ZgGdedf�df�ZhGdgdh�dh�ZiGdidj�djej�ZkGdkdl�dlej�ZlGdmdn�dnejm�ZnGdod �d ej�ZoGdpd�dej�ZpGdqdr�dr�Zqdsd
�ZreZsepjZdS(tu,Read from and write to tar format archives.
u0.9.0u"Lars Gustäbel (lars@gustaebel.de)u5$Date: 2011-02-25 17:42:01 +0200 (Fri, 25 Feb 2011) $u?$Id: tarfile.py 88586 2011-02-25 15:42:01Z marc-andre.lemburg $u4Gustavo Niemeyer, Niels Gustäbel, Richard Townsend.iNuTarFileuTarInfou
is_tarfileuTarError(uopensiisustar sustar00idi�s0s1s2s3s4s5s6s7sLsKsSsxsgsXiiupathulinkpathusizeumtimeuuidugiduunameugnameuatimeuctimei�i�i`i@i iiiii�i@i iiiuntuceuutf-8cCs2|j||�}|d|�|t|�tS(u8Convert a string to a null-terminated bytes object.
N(uencodeulenuNUL(usulengthuencodinguerrors((u,/opt/alt/python33/lib64/python3.3/tarfile.pyustn�sustncCs>|jd�}|dkr.|d|�}n|j||�S(u8Convert a null-terminated bytes object to a string.
siNi����(ufindudecode(usuencodinguerrorsup((u,/opt/alt/python33/lib64/python3.3/tarfile.pyunts�suntscCs�|ddkr�d}x:tt|�d�D]"}|dK}|||d7}q-W|ddkr�dt|�d|}q�nFy%tt|dd�p�d d�}Wntk
r�td
��YnX|S(u/Convert a number field to a python number.
ii�i�iiiuasciiustrictu0uinvalid header(i�i�(urangeulenuintuntsu
ValueErroruInvalidHeaderError(usunui((u,/opt/alt/python33/lib64/python3.3/tarfile.pyunti�s
%
unticCsd|kod|dknrHtd|d|fd�t}n�|tkr�d|d|ko|d|dknr�|dkr�tdg�}ntdg�}d||}xEt|d�D]$}|jd|d@�|dL}q�Wntd ��|S(
u/Convert a python number to a number field.
iiiu%0*ouasciiii�i�uoverflow in number field(ubytesuNULu
GNU_FORMATu bytearrayurangeuinsertu
ValueError(unudigitsuformatusui((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuitn�s$$9uitncCsBdttjd|��}dttjd|��}||fS(u�Calculate the checksum for a member's header by summing up all
characters except for the chksum field which is treated as if
it was filled with spaces. According to the GNU tar sources,
some tars (Sun and NeXT) calculate chksum with signed char,
which will be different if there are chars in the buffer with
the high bit set. So we calculate two checksums, unsigned and
signed.
iu
148B8x356Bu
148b8x356b(usumustructuunpack_from(ubufuunsigned_chksumu
signed_chksum((u,/opt/alt/python33/lib64/python3.3/tarfile.pyucalc_chksums�s ucalc_chksumscCs�|dkrdS|dkr0tj||�dSd}t||�\}}xQt|�D]C}|j|�}t|�|kr�td��n|j|�qXW|dkr�|j|�}t|�|kr�td��n|j|�ndS(ujCopy length bytes from fileobj src to fileobj dst.
If length is None, copy the entire content.
iNiiuend of file reachedi@( uNoneushutilucopyfileobjudivmodurangeureadulenuIOErroruwrite(usrcudstulengthuBUFSIZEublocksu remainderububuf((u,/opt/alt/python33/lib64/python3.3/tarfile.pyucopyfileobj�s$ucopyfileobjcCs,ddl}|jdtd�tj|�S(u/Deprecated in this location; use stat.filemode.iNu$deprecated in favor of stat.filemodei(uwarningsuwarnuDeprecationWarningustatufilemode(umodeuwarnings((u,/opt/alt/python33/lib64/python3.3/tarfile.pyufilemodes
ufilemodecCsSttjdd�}|dk r?|j|d�j|�}nt|dd�dS(Nuencodingubackslashreplaceuendu (ugetattrusysustdoutuNoneuencodeudecodeuprint(usuencoding((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_safe_printsu_safe_printcBs|EeZdZdZdS(uTarErroruBase exception.N(u__name__u
__module__u__qualname__u__doc__(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuTarError#scBs|EeZdZdZdS(uExtractErroru%General exception for extract errors.N(u__name__u
__module__u__qualname__u__doc__(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuExtractError&suExtractErrorcBs|EeZdZdZdS(u ReadErroru&Exception for unreadable tar archives.N(u__name__u
__module__u__qualname__u__doc__(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu ReadError)su ReadErrorcBs|EeZdZdZdS(uCompressionErroru.Exception for unavailable compression methods.N(u__name__u
__module__u__qualname__u__doc__(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuCompressionError,suCompressionErrorcBs|EeZdZdZdS(uStreamErroru=Exception for unsupported operations on stream-like TarFiles.N(u__name__u
__module__u__qualname__u__doc__(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuStreamError/suStreamErrorcBs|EeZdZdZdS(uHeaderErroru!Base exception for header errors.N(u__name__u
__module__u__qualname__u__doc__(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuHeaderError2suHeaderErrorcBs|EeZdZdZdS(uEmptyHeaderErroruException for empty headers.N(u__name__u
__module__u__qualname__u__doc__(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuEmptyHeaderError5suEmptyHeaderErrorcBs|EeZdZdZdS(uTruncatedHeaderErroru Exception for truncated headers.N(u__name__u
__module__u__qualname__u__doc__(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuTruncatedHeaderError8suTruncatedHeaderErrorcBs|EeZdZdZdS(uEOFHeaderErroru"Exception for end of file headers.N(u__name__u
__module__u__qualname__u__doc__(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuEOFHeaderError;suEOFHeaderErrorcBs|EeZdZdZdS(uInvalidHeaderErroruException for invalid headers.N(u__name__u
__module__u__qualname__u__doc__(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuInvalidHeaderError>suInvalidHeaderErrorcBs|EeZdZdZdS(uSubsequentHeaderErroru3Exception for missing and invalid extended headers.N(u__name__u
__module__u__qualname__u__doc__(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuSubsequentHeaderErrorAsuSubsequentHeaderErrorcBsJ|EeZdZdZdd�Zdd�Zdd�Zdd �Zd
S(u
_LowLevelFileu�Low-level file object. Supports reading and writing.
It is used instead of a regular file object for streaming
access.
cCsgitjd6tjtjBtjBd6|}ttd�rK|tjO}ntj||d�|_dS(NuruwuO_BINARYi�( uosuO_RDONLYuO_WRONLYuO_CREATuO_TRUNCuhasattruO_BINARYuopenufd(uselfunameumode((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__init__Ns
u_LowLevelFile.__init__cCstj|j�dS(N(uosucloseufd(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyucloseWsu_LowLevelFile.closecCstj|j|�S(N(uosureadufd(uselfusize((u,/opt/alt/python33/lib64/python3.3/tarfile.pyureadZsu_LowLevelFile.readcCstj|j|�dS(N(uosuwriteufd(uselfus((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuwrite]su_LowLevelFile.writeN(u__name__u
__module__u__qualname__u__doc__u__init__ucloseureaduwrite(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu
_LowLevelFileHs
u
_LowLevelFilecBs�|EeZdZdZdd�Zdd�Zdd�Zdd �Zd
d�Zdd
�Z dd�Z
dd�Zddd�Zddd�Zdd�Zdd�ZdS(u_Streamu�Class that serves as an adapter between TarFile and
a stream-like object. The stream-like object only
needs to have a read() or write() method and is accessed
blockwise. Use of gzip or bzip2 compression is possible.
A stream-like object could be for example: sys.stdin,
sys.stdout, a socket, a tape device etc.
_Stream is intended to be used only internally.
c Cs�d|_|dkr0t||�}d|_n|dkrWt|�}|j�}n|p`d|_||_||_ ||_
||_d|_d|_
d|_y�|dkr2yddl}Wntk
r�td��YnX||_|jd�|_|dkr%|j�|j|_qR|j�n |d kr�yddl}Wntk
rntd
��YnX|dkr�d|_|j�|_t|_qR|j�|_n�|dkr3yddl}Wntk
r�td��YnX|dkr!d|_|j�|_|j |_qR|j!�|_n|d
krRtd|��nWn-|jsr|j
j"�nd|_�YnXdS(u$Construct a _Stream object.
u*usiugzNuzlib module is not availableurubz2ubz2 module is not availableuxzulzma module is not availableutaruunknown compression type %rTF(#uTrueu_extfileobjuNoneu
_LowLevelFileuFalseu_StreamProxyugetcomptypeunameumodeucomptypeufileobjubufsizeubufuposucloseduzlibuImportErroruCompressionErrorucrc32ucrcu
_init_read_gzuerroru exceptionu_init_write_gzubz2udbufuBZ2DecompressorucmpuIOErroru
BZ2CompressorulzmauLZMADecompressoru LZMAErroruLZMACompressoruclose( uselfunameumodeucomptypeufileobjubufsizeuzlibubz2ulzma((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__init__ksl
u_Stream.__init__cCs*t|d�r&|jr&|j�ndS(Nuclosed(uhasattrucloseduclose(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__del__�su_Stream.__del__cCs�|jjd|jj|jj|jjd�|_tjdtt j ���}|j
d|d�|jjd�r�|jdd�|_n|j
|jj
d d
�t�dS(u6Initialize for writing with gzip compression.
i iu<Ls�s�u.gzNiu
iso-8859-1ureplacei����(uzlibucompressobjuDEFLATEDu MAX_WBITSu
DEF_MEM_LEVELucmpustructupackuintutimeu_Stream__writeunameuendswithuencodeuNUL(uselfu timestamp((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_init_write_gz�s
u_Stream._init_write_gzcCsw|jdkr-|jj||j�|_n|jt|�7_|jdkrf|jj|�}n|j|�dS(u&Write string s to the stream.
ugzutarN( ucomptypeuzlibucrc32ucrcuposulenucmpucompressu_Stream__write(uselfus((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuwrite�su
_Stream.writecCsk|j|7_xUt|j�|jkrf|jj|jd|j��|j|jd�|_qWdS(u]Write string s to the stream if a whole new block
is ready to be written.
N(ubufulenubufsizeufileobjuwrite(uselfus((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__write�s u_Stream.__writecCs�|jr
dS|jdkrF|jdkrF|j|jj�7_n|jdkr�|jr�|jj|j�d|_|jdkr�|jjtj d|j
d@��|jjtj d|jd@��q�n|js�|jj
�nd|_dS( u[Close the _Stream object. No operation should be
done on it afterwards.
Nuwutarsugzu<Ll��T(uclosedumodeucomptypeubufucmpuflushufileobjuwriteustructupackucrcuposu_extfileobjucloseuTrue(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuclose�s #) u
_Stream.closecCse|jj|jj�|_d|_|jd�dkrItd��n|jd�dkrmtd��nt|jd��}|jd�|d @r�t|jd��d
t|jd��}|j |�n|d@rx,|jd�}|s|t
kr�Pq�q�n|d@rGx,|jd�}|s=|t
krPqqn|d@ra|jd�nd
S(u:Initialize for reading a gzip compressed fileobj.
sis�unot a gzip fileisuunsupported compression methodiiiiiN(uzlibu
decompressobju MAX_WBITSucmpudbufu
_Stream__readu ReadErroruCompressionErroruordureaduNUL(uselfuflaguxlenus((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu
_init_read_gz�s.
,
u_Stream._init_read_gzcCs|jS(u3Return the stream's file pointer position.
(upos(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyutellsu_Stream.tellicCs|||jdkrit||j|j�\}}x$t|�D]}|j|j�q?W|j|�ntd��|jS(uXSet the stream's file pointer to pos. Negative seeking
is forbidden.
iu seeking backwards is not allowed(uposudivmodubufsizeurangeureaduStreamError(uselfuposublocksu remainderui((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuseeksu_Stream.seekcCs{|dkrSg}x,|j|j�}|s1Pn|j|�qdj|�}n|j|�}|jt|�7_|S(u�Return the next size number of bytes from the stream.
If size is not defined, return all bytes of the stream
up to EOF.
uN(uNoneu_readubufsizeuappendujoinuposulen(uselfusizeutubuf((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuread#su_Stream.readcCs�|jdkr|j|�St|j�}x�||kr�|j|j�}|sVPny|jj|�}Wn!|jk
r�td��YnX|j|7_|t|�7}q.W|jd|�}|j|d�|_|S(u+Return size bytes from the stream.
utaruinvalid compressed dataN( ucomptypeu
_Stream__readulenudbufubufsizeucmpu
decompressu exceptionu ReadError(uselfusizeucubuf((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_read5s
u
_Stream._readcCs�t|j�}xN||kr_|jj|j�}|s=Pn|j|7_|t|�7}qW|jd|�}|j|d�|_|S(usReturn size bytes from stream. If internal buffer is empty,
read another block from the stream.
N(ulenubufufileobjureadubufsize(uselfusizeucubuf((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__readJsu_Stream.__readN(u__name__u
__module__u__qualname__u__doc__u__init__u__del__u_init_write_gzuwriteu_Stream__writeucloseu
_init_read_gzutelluseekuNoneureadu_readu
_Stream__read(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_Stream`s F
u_StreamcBsJ|EeZdZdZdd�Zdd�Zdd�Zdd �Zd
S(u_StreamProxyusSmall proxy class that enables transparent compression
detection for the Stream interface (mode 'r|*').
cCs"||_|jjt�|_dS(N(ufileobjureadu BLOCKSIZEubuf(uselfufileobj((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__init___s u_StreamProxy.__init__cCs|jj|_|jS(N(ufileobjureadubuf(uselfusize((u,/opt/alt/python33/lib64/python3.3/tarfile.pyureadcsu_StreamProxy.readcCsj|jjd�rdS|jdd�dkrL|jdd�dkrLd S|jjd�rbdSd
SdS(Ns�ugziisBZhii
s1AY&SYubz2s]�s�7zXZuxzutar(s]�s�7zXZ(ubufu
startswith(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyugetcomptypegs2u_StreamProxy.getcomptypecCs|jj�dS(N(ufileobjuclose(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyucloseqsu_StreamProxy.closeN(u__name__u
__module__u__qualname__u__doc__u__init__ureadugetcomptypeuclose(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_StreamProxyZs
u_StreamProxycBs�|EeZdZdZddd�Zdd�Zdd�Zdd �Zd
d�Z dd
�Z
ejdd�Z
ddd�Zdd�Zdd�ZdS(u_FileInFileuA thin wrapper around an existing file object that
provides a part of its data as an individual file
object.
cCs,||_||_||_d|_t|dd�|_d|_|dkr`d|fg}nd|_ g|_
d}|j}xs|D]k\}}||kr�|j
jd||df�n|j
jd||||f�||7}||}q�W||jkr(|j
jd||jdf�ndS(NiunameFT(
ufileobjuoffsetusizeupositionugetattruNoneunameuFalseuclosedu map_indexumapuappenduTrue(uselfufileobjuoffsetusizeu blockinfoulastposurealpos((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__init__~s(
u_FileInFile.__init__cCsdS(N((uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuflush�su_FileInFile.flushcCsdS(NT(uTrue(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyureadable�su_FileInFile.readablecCsdS(NF(uFalse(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuwritable�su_FileInFile.writablecCs
|jj�S(N(ufileobjuseekable(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuseekable�su_FileInFile.seekablecCs|jS(u*Return the current file position.
(uposition(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyutell�su_FileInFile.tellcCs�|tjkr0tt|d�|j�|_n�|tjkr�|dkrgt|j|d�|_q�t|j||j�|_nC|tjkr�tt|j||j�d�|_ntd��|jS(u(Seek to a position in the file.
iuInvalid argument( uiouSEEK_SETuminumaxusizeupositionuSEEK_CURuSEEK_ENDu
ValueError(uselfupositionuwhence((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuseek�s!(u_FileInFile.seekcCsD|dkr|j|j}nt||j|j�}d}x�|dkr?xu|j|j\}}}}||jko�|knr�PqP|jd7_|jt|j�krPd|_qPqPt|||j�}|r|jj||j|�||jj |�7}n|t
|7}||8}|j|7_qAW|S(u!Read data from the file.
siiN(uNoneusizeupositionuminumapu map_indexulenufileobjuseekureaduNUL(uselfusizeubufudataustartustopuoffsetulength((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuread�s(
u_FileInFile.readcCs5|jt|��}||dt|��<t|�S(N(ureadulen(uselfububuf((u,/opt/alt/python33/lib64/python3.3/tarfile.pyureadinto�su_FileInFile.readintocCs
d|_dS(NT(uTrueuclosed(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuclose�su_FileInFile.closeN(u__name__u
__module__u__qualname__u__doc__uNoneu__init__uflushureadableuwritableuseekableutelluiouSEEK_SETuseekureadureadintouclose(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_FileInFilexsu_FileInFilecs&|EeZdZ�fdd�Z�S(uExFileObjectcs5t|j|j|j|j�}t�j|�dS(N(u_FileInFileufileobjuoffset_datausizeusparseusuperu__init__(uselfutarfileutarinfoufileobj(u __class__(u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__init__�suExFileObject.__init__(u__name__u
__module__u__qualname__u__init__(u
__locals__((u __class__u,/opt/alt/python33/lib64/python3.3/tarfile.pyuExFileObject�suExFileObjectcBsT|EeZdZdZdiZddd�Zdd�Zdd�Zeee�Z dd�Z
dd �Zee
e�Zd!d"�Z
d#d$�Zeed%d&d'�Zd(d)�Zd*d+�Zd,d-�Zed.d/��Zd0d1�Zed2d3��Zed4d5��Zed6d7��Zed8d9��Zed:d;��Zed<d=��Zd>d?�Zd@dA�Z dBdC�Z!dDdE�Z"dFdG�Z#dHdI�Z$dJdK�Z%dLdM�Z&dNdO�Z'dPdQ�Z(dRdS�Z)dTdU�Z*dVdW�Z+dXdY�Z,dZd[�Z-d\d]�Z.d^d_�Z/d`da�Z0dbdc�Z1ddde�Z2dfdg�Z3dhS(juTarInfouInformational class which holds the details about an
archive member given by a tar header block.
TarInfo objects are returned by TarFile.getmember(),
TarFile.getmembers() and TarFile.gettarinfo() and are
usually created internally.
unameumodeuuidugidusizeumtimeuchksumutypeulinknameuunameugnameudevmajorudevminoruoffsetuoffset_dataupax_headersusparseutarfileu_sparse_structsu_link_targetucCs�||_d|_d|_d|_d|_d|_d|_t|_d|_ d|_
d|_d|_d|_
d|_d|_d|_i|_dS(uXConstruct a TarInfo object. name is the optional name
of the member.
i�iuN(unameumodeuuidugidusizeumtimeuchksumuREGTYPEutypeulinknameuunameugnameudevmajorudevminoruoffsetuoffset_datauNoneusparseupax_headers(uselfuname((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__init__�s" uTarInfo.__init__cCs|jS(N(uname(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_getpathsuTarInfo._getpathcCs
||_dS(N(uname(uselfuname((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_setpathsuTarInfo._setpathcCs|jS(N(ulinkname(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_getlinkpathsuTarInfo._getlinkpathcCs
||_dS(N(ulinkname(uselfulinkname((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_setlinkpathsuTarInfo._setlinkpathcCs d|jj|jt|�fS(Nu<%s %r at %#x>(u __class__u__name__unameuid(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__repr__suTarInfo.__repr__cCs�i
|jd6|jd@d6|jd6|jd6|jd6|jd6|jd6|jd 6|jd
6|j d6|j
d6|jd
6|jd6}|d t
kr�|djd�r�|dd7<n|S(u9Return the TarInfo's attributes as a dictionary.
unamei�umodeuuidugidusizeumtimeuchksumutypeulinknameuunameugnameudevmajorudevminoru/(unameumodeuuidugidusizeumtimeuchksumutypeulinknameuunameugnameudevmajorudevminoruDIRTYPEuendswith(uselfuinfo((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuget_infos"
$uTarInfo.get_infousurrogateescapecCsv|j�}|tkr+|j|||�S|tkrJ|j|||�S|tkrf|j||�Std��dS(u<Return a tar header as a string of 512 byte blocks.
uinvalid formatN(uget_infouUSTAR_FORMATucreate_ustar_headeru
GNU_FORMATucreate_gnu_headeru
PAX_FORMATucreate_pax_headeru
ValueError(uselfuformatuencodinguerrorsuinfo((u,/opt/alt/python33/lib64/python3.3/tarfile.pyutobuf7su
TarInfo.tobufcCst|d<t|d�tkr/td��nt|d�tkri|j|d�\|d<|d<n|j|t||�S(u3Return the object as a ustar header block.
umagiculinknameulinkname is too longunameuprefix(uPOSIX_MAGICulenuLENGTH_LINKu
ValueErroruLENGTH_NAMEu_posix_split_nameu_create_headeruUSTAR_FORMAT(uselfuinfouencodinguerrors((u,/opt/alt/python33/lib64/python3.3/tarfile.pyucreate_ustar_headerEs
$uTarInfo.create_ustar_headercCs�t|d<d}t|d�tkrI||j|dt||�7}nt|d�tkr�||j|dt||�7}n||j|t||�S(u:Return the object as a GNU header block sequence.
umagicsulinknameuname( u GNU_MAGICulenuLENGTH_LINKu_create_gnu_long_headeruGNUTYPE_LONGLINKuLENGTH_NAMEuGNUTYPE_LONGNAMEu_create_headeru
GNU_FORMAT(uselfuinfouencodinguerrorsubuf((u,/opt/alt/python33/lib64/python3.3/tarfile.pyucreate_gnu_headerRs
##uTarInfo.create_gnu_headerc
Cs�t|d<|jj�}x�ddtfddtfddfD]�\}}}||kr_q>ny||jd d
�Wn#tk
r�||||<w>YnXt||�|kr>||||<q>q>Wx�dD]�\}}||kr�d||<q�n||}d|ko d|dkns5t|t �r�t
|�||<d||<q�q�W|rt|j|t|�} nd} | |j
|td d�S(u�Return the object as a ustar header block. If it cannot be
represented this way, prepend a pax extended header sequence
with supplement information.
umagicunameupathulinknameulinkpathuunamei ugnameuasciiustrictuuidiugidusizeiumtimeiisureplace(uunameuunamei (ugnameugnamei (uuidi(ugidi(usizei(umtimei((uuidi(ugidi(usizei(umtimei(uPOSIX_MAGICupax_headersucopyuLENGTH_NAMEuLENGTH_LINKuencodeuUnicodeEncodeErrorulenu
isinstanceufloatustru_create_pax_generic_headeruXHDTYPEu_create_headeruUSTAR_FORMAT(
uselfuinfouencodingupax_headersunameuhnameulengthudigitsuvalubuf((u,/opt/alt/python33/lib64/python3.3/tarfile.pyucreate_pax_header`s4
4uTarInfo.create_pax_headercCs|j|td�S(uAReturn the object as a pax global header block sequence.
uutf-8(u_create_pax_generic_headeruXGLTYPE(uclsupax_headers((u,/opt/alt/python33/lib64/python3.3/tarfile.pyucreate_pax_global_header�su TarInfo.create_pax_global_headercCs�|dtd�}x*|r@|ddkr@|dd�}qW|t|�d�}|dd�}|s�t|�tkr�td��n||fS(uUSplit a name longer than 100 chars into a prefix
and a name part.
Niu/uname is too longi����i����i����(u
LENGTH_PREFIXulenuLENGTH_NAMEu
ValueError(uselfunameuprefix((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_posix_split_name�suTarInfo._posix_split_namecCs�t|jdd�d||�t|jdd�d@d|�t|jdd�d|�t|jd d�d|�t|jd
d�d|�t|jdd�d|�d
|jdt�t|jdd�d||�|jdt�t|jdd�d||�t|jdd�d||�t|jdd�d|�t|jdd�d|�t|jdd�d||�g}tjdtdj|��}t |td��d}|dd�t
d|d�|d d�}|S(!u�Return a header block. info is a dictionary with file
information, format must be one of the *_FORMAT constants.
unameuidumodeii�iuuidugidusizeiumtimes utypeulinknameumagicuunamei ugnameudevmajorudevminoruprefixi�u%dssNilu%06ouasciiiei����i����(ustnugetuitnuREGTYPEuPOSIX_MAGICustructupacku BLOCKSIZEujoinucalc_chksumsubytes(uinfouformatuencodinguerrorsupartsubufuchksum((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_create_header�s&$/uTarInfo._create_headercCs@tt|�t�\}}|dkr<|t|t7}n|S(udReturn the string payload filled with zero bytes
up to the next 512 byte border.
i(udivmodulenu BLOCKSIZEuNUL(upayloadublocksu remainder((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_create_payload�suTarInfo._create_payloadcCsm|j||�t}i}d|d<||d<t|�|d<t|d<|j|t||�|j|�S(uTReturn a GNUTYPE_LONGNAME or GNUTYPE_LONGLINK sequence
for name.
u
././@LongLinkunameutypeusizeumagic(uencodeuNULulenu GNU_MAGICu_create_headeruUSTAR_FORMATu_create_payload(uclsunameutypeuencodinguerrorsuinfo((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_create_gnu_long_header�s
uTarInfo._create_gnu_long_headercCs�d}xJ|j�D]<\}}y|jdd�Wqtk
rNd}PYqXqWd}|rl|d7}nx�|j�D]�\}}|jd�}|r�|j|d�}n|jd�}t|�t|�d}d} }
x/|tt|
��} | |
krPn| }
q�|tt|
�d�d |d
|d7}qyWi}d|d
<||d<t|�|d<t|d<|j |t
dd�|j|�S(u�Return a POSIX.1-2008 extended or global header sequence
that contains a list of keyword, value pairs. The values
must be strings.
uutf-8ustrictss21 hdrcharset=BINARY
usurrogateescapeiiuasciis s=s
u././@PaxHeaderunameutypeusizeumagicureplaceFT(uFalseuitemsuencodeuUnicodeEncodeErroruTrueulenustrubytesuPOSIX_MAGICu_create_headeruUSTAR_FORMATu_create_payload(uclsupax_headersutypeuencodingubinaryukeyworduvalueurecordsulunupuinfo((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_create_pax_generic_header�s<
1
u"TarInfo._create_pax_generic_headerc
Csft|�dkr!td��nt|�tkrBtd��n|jt�tkrftd��nt|dd��}|t|�kr�t d��n|�}t
|dd�||�|_t|dd ��|_t|d d
��|_
t|d
d��|_t|dd��|_t|dd��|_||_|dd
�|_t
|d
d�||�|_t
|dd�||�|_t
|dd�||�|_t|dd��|_t|dd��|_t
|dd�||�}|jtkr6|jjd�r6t|_n|jtkrd}g}x�td�D]u} y<t|||d��}
t||d|d��}Wntk
r�PYnX|j|
|f�|d7}q^Wt|d�}t|dd��}
|||
f|_ n|j!�r6|jj"d�|_n|rb|jt#krb|d|j|_n|S(uAConstruct a TarInfo object from a 512 byte bytes object.
iuempty headerutruncated headeruend of file headeri�i�ubad checksumidiliti|i�i�ii i)iIiQiYi�u/i�iiii�i�i�($ulenuEmptyHeaderErroru BLOCKSIZEuTruncatedHeaderErrorucountuNULuEOFHeaderErroruntiucalc_chksumsuInvalidHeaderErroruntsunameumodeuuidugidusizeumtimeuchksumutypeulinknameuunameugnameudevmajorudevminoruAREGTYPEuendswithuDIRTYPEuGNUTYPE_SPARSEurangeu
ValueErroruappenduboolu_sparse_structsuisdirurstripu GNU_TYPES(uclsubufuencodinguerrorsuchksumuobjuprefixuposustructsuiuoffsetunumbytesu
isextendeduorigsize((u,/opt/alt/python33/lib64/python3.3/tarfile.pyufrombufsZ !"
uTarInfo.frombufcCsP|jjt�}|j||j|j�}|jj�t|_|j|�S(uOReturn the next TarInfo object from TarFile object
tarfile.
( ufileobjureadu BLOCKSIZEufrombufuencodinguerrorsutelluoffsetu_proc_member(uclsutarfileubufuobj((u,/opt/alt/python33/lib64/python3.3/tarfile.pyufromtarfileOsuTarInfo.fromtarfilecCst|jttfkr"|j|�S|jtkr>|j|�S|jtttfkrc|j |�S|j
|�SdS(uYChoose the right processing method depending on
the type and call it.
N(utypeuGNUTYPE_LONGNAMEuGNUTYPE_LONGLINKu
_proc_gnulonguGNUTYPE_SPARSEu_proc_sparseuXHDTYPEuXGLTYPEuSOLARIS_XHDTYPEu _proc_paxu
_proc_builtin(uselfutarfile((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_proc_memberds
uTarInfo._proc_membercCsx|jj�|_|j}|j�s6|jtkrO||j|j�7}n||_|j |j
|j|j�|S(ufProcess a builtin type or an unknown type which
will be treated as a regular file.
(
ufileobjutelluoffset_datauisregutypeuSUPPORTED_TYPESu_blockusizeuoffsetu_apply_pax_infoupax_headersuencodinguerrors(uselfutarfileuoffset((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu
_proc_builtinqs uTarInfo._proc_builtincCs�|jj|j|j��}y|j|�}Wntk
rQtd��YnX|j|_|jt kr�t
||j|j�|_
n-|jtkr�t
||j|j�|_n|S(uSProcess the blocks that hold a GNU longname
or longlink member.
u missing or bad subsequent header(ufileobjureadu_blockusizeufromtarfileuHeaderErroruSubsequentHeaderErroruoffsetutypeuGNUTYPE_LONGNAMEuntsuencodinguerrorsunameuGNUTYPE_LONGLINKulinkname(uselfutarfileubufunext((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu
_proc_gnulong�s
uTarInfo._proc_gnulongc
Cs&|j\}}}|`x�|r�|jjt�}d}x�td�D]�}y<t|||d��}t||d|d��} Wntk
r�PYnX|r�| r�|j|| f�n|d7}qFWt|d�}qW||_ |jj
�|_|j|j|j
�|_||_
|S(u8Process a GNU sparse header plus extra headers.
iiiii�(u_sparse_structsufileobjureadu BLOCKSIZEurangeuntiu
ValueErroruappenduboolusparseutelluoffset_datau_blockusizeuoffset(
uselfutarfileustructsu
isextendeduorigsizeubufuposuiuoffsetunumbytes((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_proc_sparse�s( "
uTarInfo._proc_sparsec
Cs�|jj|j|j��}|jtkr9|j}n|jj�}tj d|�}|dk r�|jd�jd�|d<n|j
d�}|dkr�|j}nd}tjd�}d}x�|j||�}|s�Pn|j�\} }
t| �} ||jd�d|jd�| d�}|j|
dd|j�}
|
tkrz|j|||j|j�}n|j|dd|j�}|||
<|| 7}q�y|j|�}Wntk
r�td ��YnXd
|kr�|j||�nbd|kr!|j|||�n@|j
d�d
kra|j
d�dkra|j|||�n|jttfkr�|j ||j|j�|j!|_!d|kr�|j"}
|j#�s�|jt$kr�|
|j|j�7}
n|
|_!q�n|S(uVProcess an extended or global header as described in
POSIX.1-2008.
s\d+ hdrcharset=([^\n]+)\niuutf-8u
hdrcharsetuBINARYs(\d+) ([^=]+)=iiu missing or bad subsequent headeruGNU.sparse.mapuGNU.sparse.sizeuGNU.sparse.majoru1uGNU.sparse.minoru0usizeN(%ufileobjureadu_blockusizeutypeuXGLTYPEupax_headersucopyureusearchuNoneugroupudecodeugetuencodingucompileumatchugroupsuintuendustartu_decode_pax_fielduerrorsuPAX_NAME_FIELDSufromtarfileuHeaderErroruSubsequentHeaderErroru_proc_gnusparse_01u_proc_gnusparse_00u_proc_gnusparse_10uXHDTYPEuSOLARIS_XHDTYPEu_apply_pax_infouoffsetuoffset_datauisreguSUPPORTED_TYPES(uselfutarfileubufupax_headersumatchu
hdrcharsetuencodinguregexuposulengthukeyworduvalueunextuoffset((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu _proc_pax�s`.
* uTarInfo._proc_paxcCs�g}x6tjd|�D]"}|jt|jd���qWg}x6tjd|�D]"}|jt|jd���qXWtt||��|_dS(u?Process a GNU tar extended sparse header, version 0.0.
s\d+ GNU.sparse.offset=(\d+)\nis\d+ GNU.sparse.numbytes=(\d+)\nN(ureufinditeruappenduintugroupulistuzipusparse(uselfunextupax_headersubufuoffsetsumatchunumbytes((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_proc_gnusparse_00s uTarInfo._proc_gnusparse_00cCsVdd�|djd�D�}tt|ddd�|ddd���|_dS(u?Process a GNU tar extended sparse header, version 0.1.
cSsg|]}t|��qS((uint(u.0ux((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu
<listcomp>(s u.TarInfo._proc_gnusparse_01.<locals>.<listcomp>uGNU.sparse.mapu,Nii(usplitulistuzipusparse(uselfunextupax_headersusparse((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_proc_gnusparse_01%s uTarInfo._proc_gnusparse_01cCs�d}g}|jjt�}|jdd�\}}t|�}xjt|�|dkr�d|kr�||jjt�7}n|jdd�\}}|jt|��qEW|jj�|_ t
t|ddd�|ddd���|_dS(u?Process a GNU tar extended sparse header, version 1.0.
s
iiN(
uNoneufileobjureadu BLOCKSIZEusplituintulenuappendutelluoffset_dataulistuzipusparse(uselfunextupax_headersutarfileufieldsusparseubufunumber((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_proc_gnusparse_10+suTarInfo._proc_gnusparse_10c
Csx�|j�D]�\}}|dkr8t|d|�q
|dkr]t|dt|��q
|dkr�t|dt|��q
|tkr
|tkr�yt||�}Wq�tk
r�d}Yq�Xn|dkr�|jd�}nt|||�q
q
W|j�|_dS( uoReplace fields with supplemental information from a previous
pax extended or global header.
uGNU.sparse.nameupathuGNU.sparse.sizeusizeuGNU.sparse.realsizeiu/N( uitemsusetattruintu
PAX_FIELDSuPAX_NUMBER_FIELDSu
ValueErrorurstripucopyupax_headers(uselfupax_headersuencodinguerrorsukeyworduvalue((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_apply_pax_info;s"
uTarInfo._apply_pax_infocCs=y|j|d�SWn"tk
r8|j||�SYnXdS(u1Decode a single field from a pax record.
ustrictN(udecodeuUnicodeDecodeError(uselfuvalueuencodingufallback_encodingufallback_errors((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_decode_pax_fieldRs
uTarInfo._decode_pax_fieldcCs0t|t�\}}|r(|d7}n|tS(u_Round up a byte count by BLOCKSIZE and return it,
e.g. _block(834) => 1024.
i(udivmodu BLOCKSIZE(uselfucountublocksu remainder((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_blockZs
uTarInfo._blockcCs
|jtkS(N(utypeu
REGULAR_TYPES(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuisregcsu
TarInfo.isregcCs
|j�S(N(uisreg(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuisfileesuTarInfo.isfilecCs
|jtkS(N(utypeuDIRTYPE(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuisdirgsu
TarInfo.isdircCs
|jtkS(N(utypeuSYMTYPE(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuissymisu
TarInfo.issymcCs
|jtkS(N(utypeuLNKTYPE(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuislnkksu
TarInfo.islnkcCs
|jtkS(N(utypeuCHRTYPE(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuischrmsu
TarInfo.ischrcCs
|jtkS(N(utypeuBLKTYPE(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuisblkosu
TarInfo.isblkcCs
|jtkS(N(utypeuFIFOTYPE(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuisfifoqsuTarInfo.isfifocCs
|jdk S(N(usparseuNone(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuissparsessuTarInfo.issparsecCs|jtttfkS(N(utypeuCHRTYPEuBLKTYPEuFIFOTYPE(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuisdevusu
TarInfo.isdevN(unameumodeuuidugidusizeumtimeuchksumutypeulinknameuunameugnameudevmajorudevminoruoffsetuoffset_dataupax_headersusparseutarfileu_sparse_structsu_link_target(4u__name__u
__module__u__qualname__u__doc__u __slots__u__init__u_getpathu_setpathupropertyupathu_getlinkpathu_setlinkpathulinkpathu__repr__uget_infouDEFAULT_FORMATuENCODINGutobufucreate_ustar_headerucreate_gnu_headerucreate_pax_headeruclassmethoducreate_pax_global_headeru_posix_split_nameustaticmethodu_create_headeru_create_payloadu_create_gnu_long_headeru_create_pax_generic_headerufrombufufromtarfileu_proc_memberu
_proc_builtinu
_proc_gnulongu_proc_sparseu _proc_paxu_proc_gnusparse_00u_proc_gnusparse_01u_proc_gnusparse_10u_apply_pax_infou_decode_pax_fieldu_blockuisreguisfileuisdiruissymuislnkuischruisblkuisfifouissparseuisdev(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuTarInfo�s`
1
3?
f cBs�|EeZdZdZdZd[Zd[ZdZe Z
eZdZZeZeZdZddZdZdZdZdZdZddZdZdZdd�ZedZddZedd ��ZeddZd
d��ZeddZdd
d��ZeddZddd��ZeddZdZdd��Zidd6dd6dd6dd6Zdd�Zdd�Zdd �Zd!d"�ZdZdZdZd#d$�Z d\d%d&�Z"d'dZdZd\dZd(d)�Z#dZd*d+�Z$d,dZd-d.�Z%d/d\d0d1�Z&d2d3�Z'd\d4d5�Z(d6d7�Z)d8d9�Z*d:d;�Z+d<d=�Z,d>d?�Z-d@dA�Z.dBdC�Z/dDdE�Z0dFdG�Z1dHdI�Z2dZd[dJdK�Z3dLdM�Z4dZdNdO�Z5dPdQ�Z6dRdS�Z7dTdU�Z8dVdW�Z9dXdY�Z:dZS(]uTarFileu=The TarFile Class provides an interface to tar archives.
iiurusurrogateescapec
Cs�idd6dd6dd6}
||
kr6td��n||_|
||_|s�|jdkr�tjj|�r�d|_d|_nt||j�}d|_nN|d
kr�t
|d�r�|j}nt
|d �r�|j|_nd
|_|r
tjj
|�nd
|_||_|d
k r7||_n|d
k rO||_n|d
k rg||_n|d
k r||_n|d
k r�||_n| |_|
d
k r�|jtkr�|
|_n i|_|d
k r�||_n|d
k r||_nd|_g|_d|_|jj�|_i|_yE|jdkrcd
|_|j �|_n|jdkrx�|jj!|j�y&|jj"|�}|jj#|�Wqut$k
r�|jj!|j�PYqut%k
r}zt&t'|���WYd
d
}~XquXqun|jdkrzd
|_|jrz|jj(|jj)��}|jj*|�|jt+|�7_qznWn-|js�|jj,�nd
|_�YnXd
S(u�Open an (uncompressed) tar archive `name'. `mode' is either 'r' to
read from an existing archive, 'a' to append data to an existing
file or 'w' to create a new file overwriting an existing one. `mode'
defaults to 'r'.
If `fileobj' is given, it is used for reading or writing data. If it
can be determined, `mode' is overridden by `fileobj's mode.
`fileobj' is not closed, when TarFile is closed.
urburur+buauwbuwumode must be 'r', 'a' or 'w'unameumodeNuawFT(-u
ValueErrorumodeu_modeuosupathuexistsu bltn_openuFalseu_extfileobjuNoneuhasattrunameuTrueuabspathufileobjuformatutarinfoudereferenceuignore_zerosuencodinguerrorsu
PAX_FORMATupax_headersudebugu
errorleveluclosedumembersu_loadedutelluoffsetuinodesufirstmemberunextuseekufromtarfileuappenduEOFHeaderErroruHeaderErroru ReadErrorustrucreate_pax_global_headerucopyuwriteulenuclose(uselfunameumodeufileobjuformatutarinfoudereferenceuignore_zerosuencodinguerrorsupax_headersudebugu
errorlevelumodesueubuf((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__init__�s�
" !
+ uTarFile.__init__c
KsG|r|rtd��n|dkr�x�|jD]�}t||j|�}|dk rj|j�}ny||d||�SWq3ttfk
r�} z$|dk r�|j|�nw3WYdd} ~ Xq3Xq3Wtd��nVd|krh|jdd�\}
}|
pd}
|pd}||jkrEt||j|�}ntd |��|||
||�Sd
|kr|jd
d�\}
}|
p�d}
|p�d}|
dkr�td��nt ||
|||�}y|||
||�}Wn|j
��YnXd|_|S|dkr7|j
||||�Std��dS(u�Open a tar archive for reading, writing or appending. Return
an appropriate TarFile class.
mode:
'r' or 'r:*' open for reading with transparent compression
'r:' open for reading exclusively uncompressed
'r:gz' open for reading with gzip compression
'r:bz2' open for reading with bzip2 compression
'r:xz' open for reading with lzma compression
'a' or 'a:' open for appending, creating the file if necessary
'w' or 'w:' open for writing without compression
'w:gz' open for writing with gzip compression
'w:bz2' open for writing with bzip2 compression
'w:xz' open for writing with lzma compression
'r|*' open a stream of tar blocks with transparent compression
'r|' open an uncompressed stream of tar blocks for reading
'r|gz' open a gzip compressed stream of tar blocks
'r|bz2' open a bzip2 compressed stream of tar blocks
'r|xz' open an lzma compressed stream of tar blocks
'w|' open an uncompressed stream for writing
'w|gz' open a gzip compressed stream for writing
'w|bz2' open a bzip2 compressed stream for writing
'w|xz' open an lzma compressed stream for writing
unothing to openurur:*Nu%file could not be opened successfullyu:iutaruunknown compression type %ru|uwumode must be 'r' or 'w'uauundiscernible mode(urur:*(uruwF(uauw(u
ValueErroru OPEN_METHugetattruNoneutellu ReadErroruCompressionErroruseekusplitu_StreamucloseuFalseu_extfileobjutaropen(
uclsunameumodeufileobjubufsizeukwargsucomptypeufuncu saved_posueufilemodeustreamut((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuopen�sN
uTarFile.opencKs.|dkrtd��n|||||�S(uCOpen uncompressed tar archive name for reading or writing.
uruauwumode must be 'r', 'a' or 'w'(uruauw(u
ValueError(uclsunameumodeufileobjukwargs((u,/opt/alt/python33/lib64/python3.3/tarfile.pyutaropenOsuTarFile.taropeni cKs2|d krtd��nyddl}|jWn$ttfk
rXtd��YnXy |j||d||�}Wn<tk
r�|dk r�|dkr�td��n�YnXy|j ||||�}WnNtk
r|j
�|dkr td��n�Yn|j
��YnXd
|_|S(ukOpen gzip compressed tar archive name for reading or writing.
Appending is not allowed.
uruwumode must be 'r' or 'w'iNugzip module is not availableubunot a gzip file(uruwF(
u
ValueErrorugzipuGzipFileuImportErroruAttributeErroruCompressionErroruOSErroruNoneu ReadErrorutaropenucloseuFalseu_extfileobj(uclsunameumodeufileobju
compresslevelukwargsugziput((u,/opt/alt/python33/lib64/python3.3/tarfile.pyugzopenWs2
uTarFile.gzopencKs�|d krtd��nyddl}Wntk
rKtd��YnX|j|p[||d|�}y|j||||�}WnTttfk
r�|j�|dkr�t d��n�Yn|j��YnXd
|_|S(ulOpen bzip2 compressed tar archive name for reading or writing.
Appending is not allowed.
uruwumode must be 'r' or 'w'.iNubz2 module is not availableu
compresslevelunot a bzip2 file(uruwF(u
ValueErrorubz2uImportErroruCompressionErroruBZ2FileutaropenuIOErroruEOFErrorucloseu ReadErroruFalseu_extfileobj(uclsunameumodeufileobju
compresslevelukwargsubz2ut((u,/opt/alt/python33/lib64/python3.3/tarfile.pyubz2openys(
uTarFile.bz2opencKs�|d krtd��nyddl}Wntk
rKtd��YnX|j|p[||d|�}y|j||||�}WnW|jtfk
r�|j�|dkr�t d��n�Yn|j��YnXd
|_|S(ukOpen lzma compressed tar archive name for reading or writing.
Appending is not allowed.
uruwumode must be 'r' or 'w'iNulzma module is not availableupresetunot an lzma file(uruwF(u
ValueErrorulzmauImportErroruCompressionErroruLZMAFileutaropenu LZMAErroruEOFErrorucloseu ReadErroruFalseu_extfileobj(uclsunameumodeufileobjupresetukwargsulzmaut((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuxzopen�s&
uTarFile.xzopenutaropenutarugzopenugzubz2openubz2uxzopenuxzcCs�|jr
dS|jdkr�|jjttd�|jtd7_t|jt�\}}|dkr�|jjtt|�q�n|j s�|jj
�nd|_dS(ulClose the TarFile. In write-mode, two finishing zero blocks are
appended to the archive.
NuawiiT(uclosedumodeufileobjuwriteuNULu BLOCKSIZEuoffsetudivmodu
RECORDSIZEu_extfileobjucloseuTrue(uselfublocksu remainder((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuclose�s u
TarFile.closecCs2|j|�}|dkr.td|��n|S(uReturn a TarInfo object for member `name'. If `name' can not be
found in the archive, KeyError is raised. If a member occurs more
than once in the archive, its last occurrence is assumed to be the
most up-to-date version.
ufilename %r not foundN(u
_getmemberuNoneuKeyError(uselfunameutarinfo((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu getmember�suTarFile.getmembercCs'|j�|js |j�n|jS(u�Return the members of the archive as a list of TarInfo objects. The
list has the same order as the members in the archive.
(u_checku_loadedu_loadumembers(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu
getmembers�s
uTarFile.getmemberscCsdd�|j�D�S(u�Return the members of the archive as a list of their names. It has
the same order as the list returned by getmembers().
cSsg|]}|j�qS((uname(u.0utarinfo((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu
<listcomp>�s u$TarFile.getnames.<locals>.<listcomp>(u
getmembers(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyugetnames�suTarFile.getnamescCs^|jd�|d k r%|j}n|d kr:|}ntjj|�\}}|jtjd�}|jd�}|j �}||_
|d kr�ttd�r�|jr�tj
|�}q�tj|�}ntj|j��}d}|j}tj|�r�|j|jf} |jrj|jdkrj| |jkrj||j| krjt}
|j| }qt}
| dr||j| <qn�tj|�r�t}
nstj|�r�t}
n[tj|�r�t}
tj|�}n4tj |�r�t!}
ntj"|�rt#}
nd S||_||_$|j%|_&|j'|_(|
tkr]|j)|_*n d|_*|j+|_,|
|_-||_.t/r�yt/j0|j&�d|_1Wq�t2k
r�Yq�Xnt3r�yt3j4|j(�d|_5Wq�t2k
r�Yq�Xn|
t!t#fkrZttd�rZttd�rZtj6|j7�|_8tj9|j7�|_:qZn|S(
uOCreate a TarInfo object for either the file `name' or the file
object `fileobj' (using os.fstat on its file descriptor). You can
modify some of the TarInfo's attributes before you add it using
addfile(). If given, `arcname' specifies an alternative name for the
file in the archive.
uawu/ulstatuiiumajoruminorN(;u_checkuNoneunameuosupathu
splitdriveureplaceusepulstriputarinfoutarfileuhasattrudereferenceulstatustatufstatufilenoust_modeuS_ISREGust_inoust_devust_nlinkuinodesuLNKTYPEuREGTYPEuS_ISDIRuDIRTYPEuS_ISFIFOuFIFOTYPEuS_ISLNKuSYMTYPEureadlinkuS_ISCHRuCHRTYPEuS_ISBLKuBLKTYPEumodeust_uiduuidust_gidugidust_sizeusizeust_mtimeumtimeutypeulinknameupwdugetpwuiduunameuKeyErrorugrpugetgrgidugnameumajorust_rdevudevmajoruminorudevminor(uselfunameuarcnameufileobjudrvutarinfoustatresulinknameustmduinodeutype((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu
gettarinfo�s~
"
uTarFile.gettarinfoc CsK|j�x:|D]2}|r�ttj|j��td|jpH|j|jpW|jf�|j �sw|j
�r�tdd|j|jf�ntd|j
�tdtj|j�dd��nt|j|j�r�dnd �|r<|j�rtd
|j�n|j�r<td|j�q<nt�qWdS(u�Print a table of contents to sys.stdout. If `verbose' is False, only
the names of the members are printed. If it is True, an `ls -l'-like
output is produced.
u%s/%su%10su%d,%du%10du%d-%02d-%02d %02d:%02d:%02dNiu/uu-> ulink to (u_checku_safe_printustatufilemodeumodeuunameuuidugnameugiduischruisblkudevmajorudevminorusizeutimeu localtimeumtimeunameuisdiruissymulinknameuislnkuprint(uselfuverboseutarinfo((u,/opt/alt/python33/lib64/python3.3/tarfile.pyulistNs&
!#uTarFile.listufilterc Cs�|jd�|dkr"|}n|dk rtddl}|jdtd�||�rt|jdd|�dSn|jdk r�tjj |�|jkr�|jdd|�dS|jd|�|j
||�}|dkr�|jdd |�dS|dk r;||�}|dkr;|jdd|�dSn|j�rrt|d
��}|j
||�WdQXn�|j�r�|j
|�|r�xTtj|�D]@}|jtjj||�tjj||�||d|�q�Wq�n
|j
|�dS(u~Add the file `name' to the archive. `name' may be any type of file
(directory, fifo, symbolic link, etc.). If given, `arcname'
specifies an alternative name for the file in the archive.
Directories are added recursively by default. This can be avoided by
setting `recursive' to False. `exclude' is a function that should
return True for each filename to be excluded. `filter' is a function
that expects a TarInfo object argument and returns the changed
TarInfo object, if it returns None the TarInfo object will be
excluded from the archive.
uawiNuuse the filter argument insteadiutarfile: Excluded %rutarfile: Skipped %riutarfile: Unsupported type %rurbufilter(u_checkuNoneuwarningsuwarnuDeprecationWarningu_dbgunameuosupathuabspathu
gettarinfouisregu bltn_openuaddfileuisdirulistdiruaddujoin( uselfunameuarcnameu recursiveuexcludeufilteruwarningsutarinfouf((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuaddksB
*
*uTarFile.addcCs�|jd�tj|�}|j|j|j|j�}|jj|�|jt |�7_|dk r�t||j|j�t
|jt�\}}|dkr�|jjtt|�|d7}n|j|t7_n|jj|�dS(u]Add the TarInfo object `tarinfo' to the archive. If `fileobj' is
given, tarinfo.size bytes are read from it and added to the archive.
You can create TarInfo objects using gettarinfo().
On Windows platforms, `fileobj' should always be opened with mode
'rb' to avoid irritation about the file size.
uawiiN(u_checkucopyutobufuformatuencodinguerrorsufileobjuwriteuoffsetulenuNoneucopyfileobjusizeudivmodu BLOCKSIZEuNULumembersuappend(uselfutarinfoufileobjubufublocksu remainder((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuaddfile�s
uTarFile.addfileu.cCsOg}|dkr|}nx_|D]W}|j�r\|j|�tj|�}d|_n|j||d|j��q"W|jddd��|j�x�|D]�}tj j
||j�}y4|j||�|j
||�|j||�Wq�tk
rF}z.|jdkr �n|jdd|�WYdd}~Xq�Xq�WdS( uMExtract all members from the archive to the current working
directory and set owner, modification time and permissions on
directories afterwards. `path' specifies a different directory
to extract to. `members' is optional and must be a subset of the
list returned by getmembers().
i�u set_attrsukeycSs|jS(N(uname(ua((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu<lambda>�su$TarFile.extractall.<locals>.<lambda>iutarfile: %sN(uNoneuisdiruappenducopyumodeuextractusortureverseuosupathujoinunameuchownuutimeuchmoduExtractErroru
errorlevelu_dbg(uselfupathumembersudirectoriesutarinfoudirpathue((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu
extractall�s*
!
uTarFile.extractallucCsa|jd�t|t�r.|j|�}n|}|j�r^tjj||j�|_ ny,|j
|tjj||j�d|�Wn�tk
r}zc|j
dkr��nI|jdkr�|jdd|j�n |jdd|j|jf�WYdd}~XnNtk
r\}z.|j
dkr6�n|jdd|�WYdd}~XnXdS(uxExtract 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 TarInfo object. You can
specify a different directory using `path'. File attributes (owner,
mtime, mode) are set unless `set_attrs' is False.
uru set_attrsiiutarfile: %sutarfile: %s %rN(u_checku
isinstanceustru getmemberuislnkuosupathujoinulinknameu_link_targetu_extract_memberunameuEnvironmentErroru
errorlevelufilenameuNoneu_dbgustrerroruExtractError(uselfumemberupathu set_attrsutarinfoue((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuextract�s&
!2uTarFile.extractcCs�|jd�t|t�r.|j|�}n|}|j�sO|jtkr_|j||�S|j�sw|j �r�t|j
t�r�td��q�|j
|j|��SndSdS(u�Extract a member from the archive as a file object. `member' may be
a filename or a TarInfo object. If `member' is a regular file or a
link, an io.BufferedReader object is returned. Otherwise, None is
returned.
uru'cannot extract (sym)link as file objectN(u_checku
isinstanceustru getmemberuisregutypeuSUPPORTED_TYPESu
fileobjectuislnkuissymufileobju_StreamuStreamErroruextractfileu_find_link_targetuNone(uselfumemberutarinfo((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuextractfiles
uTarFile.extractfilecCs�|jd�}|jdtj�}tjj|�}|r_tjj|�r_tj|�n|j�sw|j �r�|j
dd|j|jf�n|j
d|j�|j
�r�|j||�n�|j�r�|j||�n�|j�r
|j||�n�|j�s"|j�r5|j||�n]|j�sM|j �r`|j||�n2|jtkr�|j||�n|j||�|r�|j||�|j �s�|j||�|j||�q�ndS(u\Extract the TarInfo object tarinfo to a physical
file called targetpath.
u/iu%s -> %sN(urstripureplaceuosusepupathudirnameuexistsumakedirsuislnkuissymu_dbgunameulinknameuisregumakefileuisdirumakediruisfifoumakefifouischruisblkumakedevumakelinkutypeuSUPPORTED_TYPESumakeunknownuchownuchmoduutime(uselfutarinfou
targetpathu set_attrsu upperdirs((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_extract_member*s4#uTarFile._extract_membercCs-ytj|d�Wntk
r(YnXdS(u,Make a directory called targetpath.
i�N(uosumkdiruFileExistsError(uselfutarinfou
targetpath((u,/opt/alt/python33/lib64/python3.3/tarfile.pyumakedirZs
uTarFile.makedircCs�|j}|j|j�t|d��}}|jdk rtxJ|jD])\}}|j|�t|||�qDWnt|||j�|j|j�|j�WdQXdS(u'Make a file called targetpath.
uwbN( ufileobjuseekuoffset_datau bltn_openusparseuNoneucopyfileobjusizeutruncate(uselfutarinfou
targetpathusourceutargetuoffsetusize((u,/opt/alt/python33/lib64/python3.3/tarfile.pyumakefileds
uTarFile.makefilecCs+|j||�|jdd|j�dS(uYMake a file from a TarInfo object with an unknown type
at targetpath.
iu9tarfile: Unknown file type %r, extracted as regular file.N(umakefileu_dbgutype(uselfutarinfou
targetpath((u,/opt/alt/python33/lib64/python3.3/tarfile.pyumakeunknownssuTarFile.makeunknowncCs/ttd�rtj|�ntd��dS(u'Make a fifo called targetpath.
umkfifoufifo not supported by systemN(uhasattruosumkfifouExtractError(uselfutarinfou
targetpath((u,/opt/alt/python33/lib64/python3.3/tarfile.pyumakefifo{suTarFile.makefifocCs�ttd�s ttd�r/td��n|j}|j�rT|tjO}n
|tjO}tj||tj |j
|j��dS(u<Make a character or block device called targetpath.
umknodumakedevu'special devices not supported by systemN(uhasattruosuExtractErrorumodeuisblkustatuS_IFBLKuS_IFCHRumknodumakedevudevmajorudevminor(uselfutarinfou
targetpathumode((u,/opt/alt/python33/lib64/python3.3/tarfile.pyumakedev�s
uTarFile.makedevcCs�yj|j�r%tj|j|�nDtjj|j�rPtj|j|�n|j|j |�|�WnPt
k
r�y|j|j |�|�Wntk
r�td��YnXYnXdS(u�Make a (symbolic) link called targetpath. If it cannot be created
(platform limitation), we try to make a copy of the referenced file
instead of a link.
u%unable to resolve link inside archiveN(
uissymuosusymlinkulinknameupathuexistsu_link_targetulinku_extract_memberu_find_link_targetusymlink_exceptionuKeyErroruExtractError(uselfutarinfou
targetpath((u,/opt/alt/python33/lib64/python3.3/tarfile.pyumakelink�s
uTarFile.makelinkc"Cs,tr(ttd�r(tj�dkr(ytj|j�d}Wntk
r^|j}YnXytj |j
�d}Wntk
r�|j}YnXyZ|j�r�ttd�r�tj
|||�n%tjdkr�tj|||�nWq(tk
r$}ztd��WYdd}~Xq(XndS(u6Set owner of targetpath according to tarinfo.
ugeteuidiiulchownuos2emxucould not change ownerN(upwduhasattruosugeteuidugrpugetgrnamugnameuKeyErrorugidugetpwnamuunameuuiduissymulchownusysuplatformuchownuEnvironmentErroruExtractError(uselfutarinfou
targetpathuguuue((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuchown�s '
u
TarFile.chowncCsattd�r]ytj||j�Wq]tk
rY}ztd��WYdd}~Xq]XndS(uASet file permissions of targetpath according to tarinfo.
uchmoducould not change modeN(uhasattruosuchmodumodeuEnvironmentErroruExtractError(uselfutarinfou
targetpathue((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuchmod�s
u
TarFile.chmodcCskttd�sdSy tj||j|jf�Wn1tk
rf}ztd��WYdd}~XnXdS(uBSet modification time of targetpath according to tarinfo.
uutimeNu"could not change modification time(uhasattruosuutimeumtimeuEnvironmentErroruExtractError(uselfutarinfou
targetpathue((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuutime�s u
TarFile.utimecCs'|jd�|jdk r2|j}d|_|S|jj|j�d}x�y|jj|�}Wn�tk
r�}z@|j r�|j
dd|j|f�|jt7_wNnWYdd}~Xn1tk
rI}zd|j r|j
dd|j|f�|jt7_wNn$|jdkr7t
t|���nWYdd}~Xn�tk
rx|jdkrtt
d��nYntk
r�}z)|jdkr�t
t|���nWYdd}~Xn7tk
r�}zt
t|���WYdd}~XnXPqN|dk r|jj|�n d|_|S(u�Return the next member of the archive as a TarInfo object, when
TarFile is opened for reading. Return None if there is no more
available.
uraiu0x%X: %sNiu
empty fileT(u_checkufirstmemberuNoneufileobjuseekuoffsetutarinfoufromtarfileuEOFHeaderErroruignore_zerosu_dbgu BLOCKSIZEuInvalidHeaderErroru ReadErrorustruEmptyHeaderErroruTruncatedHeaderErroruSubsequentHeaderErrorumembersuappenduTrueu_loaded(uselfumutarinfoue((u,/opt/alt/python33/lib64/python3.3/tarfile.pyunext�sF
'
'% uTarFile.nextcCs�|j�}|dk r4|d|j|��}n|rOtjj|�}nxKt|�D]=}|r�tjj|j�}n |j}||kr\|Sq\WdS(u}Find an archive member by name from bottom to top.
If tarinfo is given, it is used as the starting point.
N(u
getmembersuNoneuindexuosupathunormpathureverseduname(uselfunameutarinfou normalizeumembersumemberumember_name((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu
_getmember s uTarFile._getmembercCs/x|j�}|dkrPqqd|_dS(uWRead through the entire archive file and look for readable
members.
NT(unextuNoneuTrueu_loaded(uselfutarinfo((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_load s
u
TarFile._loadcCsW|jr"td|jj��n|dk rS|j|krStd|j��ndS(unCheck if TarFile is still open, and if the operation's mode
corresponds to TarFile's mode.
u%s is closedubad operation for mode %rN(ucloseduIOErroru __class__u__name__uNoneumode(uselfumode((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_check% s uTarFile._checkcCs�|j�rEdjtdtjj|j�|jf��}d}n|j}|}|j |d|dd�}|dkr�td|��n|S(uZFind the target member of a symlink or hardlink member in the
archive.
u/utarinfou normalizeulinkname %r not foundNT(uissymujoinufilteruNoneuosupathudirnameunameulinknameu
_getmemberuTrueuKeyError(uselfutarinfoulinknameulimitumember((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_find_link_target. s0 uTarFile._find_link_targetcCs$|jrt|j�St|�SdS(u$Provide an iterator object.
N(u_loadeduiterumembersuTarIter(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__iter__A s
uTarFile.__iter__cCs)||jkr%t|dtj�ndS(u.Write debugging output to sys.stderr.
ufileN(udebuguprintusysustderr(uselfulevelumsg((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu_dbgI suTarFile._dbgcCs|j�|S(N(u_check(uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu __enter__O s
uTarFile.__enter__cCs?|dkr|j�n"|js2|jj�nd|_dS(NT(uNoneucloseu_extfileobjufileobjuTrueuclosed(uselfutypeuvalueu traceback((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__exit__S s
uTarFile.__exit__NFT(;u__name__u
__module__u__qualname__u__doc__udebuguFalseudereferenceuignore_zerosu
errorleveluDEFAULT_FORMATuformatuENCODINGuencodinguNoneuerrorsuTarInfoutarinfouExFileObjectu
fileobjectu__init__uclassmethodu
RECORDSIZEuopenutaropenugzopenubz2openuxzopenu OPEN_METHucloseu getmemberu
getmembersugetnamesu
gettarinfouTrueulistuadduaddfileu
extractalluextractuextractfileu_extract_memberumakedirumakefileumakeunknownumakefifoumakedevumakelinkuchownuchmoduutimeunextu
_getmemberu_loadu_checku_find_link_targetu__iter__u_dbgu __enter__u__exit__(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuTarFileystjO!
b=�
1
cBs>|EeZdZdZdd�Zdd�Zdd�ZdS( uTarIteruMIterator Class.
for tarinfo in TarFile(...):
suite...
cCs||_d|_dS(u$Construct a TarIter object.
iN(utarfileuindex(uselfutarfile((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__init__e s uTarIter.__init__cCs|S(u Return iterator object.
((uself((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__iter__j suTarIter.__iter__cCs�|jdkr3|jjdk r3|jj�}np|jt|jj�krd|jj|j}n?|jjs�|jj�}|s�d|j_t �q�nt �|jd7_|S(u�Return the next item using TarFile's next() method.
When all members have been read, set TarFile as _loaded.
iiNT(
uindexutarfileufirstmemberuNoneunextulenumembersu_loadeduTrueu
StopIteration(uselfutarinfo((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu__next__n s!uTarIter.__next__N(u__name__u
__module__u__qualname__u__doc__u__init__u__iter__u__next__(u
__locals__((u,/opt/alt/python33/lib64/python3.3/tarfile.pyuTarIter^ suTarItercCs;yt|�}|j�dSWntk
r6dSYnXdS(ufReturn True if name points to a tar archive that we
are able to handle, else return False.
NTF(uopenucloseuTrueuTarErroruFalse(unameut((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu
is_tarfile� s
(tu__doc__uversionu
__author__u__date__u __cvsid__u__credits__usysuosuioushutilustatutimeustructucopyureugrpupwduImportErroruNoneuAttributeErroruNotImplementedErrorusymlink_exceptionuWindowsErroru NameErroru__all__ubuiltinsuopenu_openuNULu BLOCKSIZEu
RECORDSIZEu GNU_MAGICuPOSIX_MAGICuLENGTH_NAMEuLENGTH_LINKu
LENGTH_PREFIXuREGTYPEuAREGTYPEuLNKTYPEuSYMTYPEuCHRTYPEuBLKTYPEuDIRTYPEuFIFOTYPEuCONTTYPEuGNUTYPE_LONGNAMEuGNUTYPE_LONGLINKuGNUTYPE_SPARSEuXHDTYPEuXGLTYPEuSOLARIS_XHDTYPEuUSTAR_FORMATu
GNU_FORMATu
PAX_FORMATuDEFAULT_FORMATuSUPPORTED_TYPESu
REGULAR_TYPESu GNU_TYPESu
PAX_FIELDSuPAX_NAME_FIELDSufloatuintuPAX_NUMBER_FIELDSuS_IFLNKuS_IFREGuS_IFBLKuS_IFDIRuS_IFCHRuS_IFIFOuTSUIDuTSGIDuTSVTXuTUREADuTUWRITEuTUEXECuTGREADuTGWRITEuTGEXECuTOREADuTOWRITEuTOEXECunameuENCODINGugetfilesystemencodingustnuntsuntiuitnucalc_chksumsucopyfileobjufilemodeu_safe_printu ExceptionuTarErroruExtractErroru ReadErroruCompressionErroruStreamErroruHeaderErroruEmptyHeaderErroruTruncatedHeaderErroruEOFHeaderErroruInvalidHeaderErroruSubsequentHeaderErroru
_LowLevelFileu_Streamuobjectu_StreamProxyu_FileInFileuBufferedReaderuExFileObjectuTarInfouTarFileuTarIteru
is_tarfileu bltn_open(((u,/opt/alt/python33/lib64/python3.3/tarfile.pyu<module>s�
�e�������)