ž ©ÿf¢6c@sÒdZddlZddlZddlZddddddd d d d d dddgZeefZdd„Zddd„Z ddodd„Z dd „Z dd„ZejddƒZejddƒZdd„Zdd„Zi dd6dd6dd6d d!6d"d#6d$d%6d&d'6d(d)6d*d+6d,d-6d.d/6d0d16d2d36d4d56d6d76d8d96d:d;6d<d=6d>d?6d@dA6dBdC6dDdE6dFdG6dHdI6dJdK6dLdM6dNdO6dPdQ6dRdS6dTdU6dVdW6dXdY6ZdZd[„eejƒƒDƒZed\d[„ejƒDƒƒZd]d „Zdodd^d „Zd_d „Zdod`d „ZdaZed;d3Zdbd„Z dcd„Z!ddd„Z"dedf„Z#dgd„Z$dhdi„Z%djdk„Z&dldm„Z'e(dnkrÎe&ƒndS(pu/RFC 3548: Base16, Base32, Base64 Data EncodingsiNuencodeudecodeu encodebytesu decodebytesu b64encodeu b64decodeu b32encodeu b32decodeu b16encodeu b16decodeustandard_b64encodeustandard_b64decodeuurlsafe_b64encodeuurlsafe_b64decodec Csqt|tƒrDy|jdƒSWqmtk r@tdƒ‚YqmXn)t|tƒrW|Std|jjƒ‚dS(Nuasciiu4string argument should contain only ASCII charactersu0argument should be bytes or ASCII string, not %s( u isinstanceustruencodeuUnicodeEncodeErroru ValueErroru bytes_typesu TypeErroru __class__u__name__(us((u+/opt/alt/python33/lib64/python3.3/base64.pyu_bytes_from_decode_data s u_bytes_from_decode_datacCs¶t|tƒs(td|jjƒ‚ntj|ƒdd…}|dk r²t|tƒsutd|jjƒ‚nt|ƒdks™t t |ƒƒ‚|j t j d|ƒƒS|S(uSEncode a byte string using Base64. s is the byte string to encode. Optional altchars must be a byte string of length 2 which specifies an alternative alphabet for the '+' and '/' characters. This allows an application to e.g. generate url or filesystem safe Base64 strings. The encoded byte string is returned. uexpected bytes, not %sNiis+/iÿÿÿÿ(u isinstanceu bytes_typesu TypeErroru __class__u__name__ubinasciiu b2a_base64uNoneulenuAssertionErrorurepru translateubytesu maketrans(usualtcharsuencoded((u+/opt/alt/python33/lib64/python3.3/base64.pyu b64encode/s  $cCsžt|ƒ}|dk rft|ƒ}t|ƒdksHtt|ƒƒ‚|jtj|dƒƒ}n|r‘tj d|ƒ r‘t j dƒ‚nt j |ƒS(uDecode a Base64 encoded byte string. s is the byte string to decode. Optional altchars must be a string of length 2 which specifies the alternative alphabet used instead of the '+' and '/' characters. The decoded string is returned. A binascii.Error is raised if s is incorrectly padded. If validate is False (the default), non-base64-alphabet characters are discarded prior to the padding check. If validate is True, non-base64-alphabet characters in the input result in a binascii.Error. is+/s^[A-Za-z0-9+/]*={0,2}$uNon-base64 digit foundN( u_bytes_from_decode_datauNoneulenuAssertionErrorurepru translateubytesu maketransureumatchubinasciiuErroru a2b_base64(usualtcharsuvalidate((u+/opt/alt/python33/lib64/python3.3/base64.pyu b64decodeFs   $cCs t|ƒS(uˆEncode a byte string using the standard Base64 alphabet. s is the byte string to encode. The encoded byte string is returned. (u b64encode(us((u+/opt/alt/python33/lib64/python3.3/base64.pyustandard_b64encode^scCs t|ƒS(uDecode a byte string encoded with the standard Base64 alphabet. s is the byte string to decode. The decoded byte string is returned. binascii.Error is raised if the input is incorrectly padded or if there are non-alphabet characters present in the input. (u b64decode(us((u+/opt/alt/python33/lib64/python3.3/base64.pyustandard_b64decodeess+/s-_cCst|ƒjtƒS(uÌEncode a byte string using a url-safe Base64 alphabet. s is the byte string to encode. The encoded byte string is returned. The alphabet uses '-' instead of '+' and '_' instead of '/'. (u b64encodeu translateu_urlsafe_encode_translation(us((u+/opt/alt/python33/lib64/python3.3/base64.pyuurlsafe_b64encodesscCs%t|ƒ}|jtƒ}t|ƒS(uXDecode a byte string encoded with the standard Base64 alphabet. s is the byte string to decode. The decoded byte string is returned. binascii.Error is raised if the input is incorrectly padded or if there are non-alphabet characters present in the input. The alphabet uses '-' instead of '+' and '_' instead of '/'. (u_bytes_from_decode_datau translateu_urlsafe_decode_translationu b64decode(us((u+/opt/alt/python33/lib64/python3.3/base64.pyuurlsafe_b64decode|s sAsJi sSis3isBisKi sTis4isCisLi sUis5isDisMi sVis6isEisNi sWis7isFisOisXisGisPisYisHisQisZisIisRis2icCs g|]\}}|d‘qS(i((u.0ukuv((u+/opt/alt/python33/lib64/python3.3/base64.pyu ™s u cCs&g|]\}}|d|f‘qS(i((u.0ukuv((u+/opt/alt/python33/lib64/python3.3/base64.pyu šs c CsÝt|tƒs(td|jjƒ‚ntt|ƒdƒ\}}|rj|td|ƒ}|d7}ntƒ}xát |ƒD]Ó}t j d||d|dd…ƒ\}}}||d@d>7}||d@d>7}|tt |d?t |d ?d @t |d?d @t |d ?t |d ?d @t |d ?d @t |d?t |d @gƒ7}q€W|dkrvd|dd…|dkr´d|dd…7}| d 8} | dkr!|jtjt d |dƒƒƒd}d } q!q!Wtjt d |dƒƒ} |dkrãd} n‹|dkr| d d…} nl|dkr!| d d…} nM|dkr@| d d…} n.|dkr_| d d…} ntjdƒ‚|j| ƒdj|ƒS(u]Decode a Base32 encoded byte string. s is the byte string to decode. Optional casefold is a flag specifying whether a lowercase alphabet is acceptable as input. For security purposes, the default is False. RFC 3548 allows for optional mapping of the digit 0 (zero) to the letter O (oh), and for optional mapping of the digit 1 (one) to either the letter I (eye) or letter L (el). The optional argument map01 when not None, specifies which letter the digit 1 should be mapped to (when map01 is not None, the digit 0 is always mapped to the letter O). For security purposes the default is None, so that 0 and 1 are not allowed in the input. The decoded byte string is returned. binascii.Error is raised if the input is incorrectly padded or if there are non-alphabet characters present in the input. iuIncorrect paddingis01sOis(?P[=]*)$upadNi#uNon-base32 digit foundiu%010xuasciisiiiiiÿÿÿÿiþÿÿÿiýÿÿÿiüÿÿÿ(u_bytes_from_decode_dataudivmodulenubinasciiuErroruNoneuAssertionErrorurepru translateubytesu maketransuupperureusearchugroupu_b32revugetuappendu unhexlifyujoin( usucasefoldumap01uquantauleftoverupadcharsumoupartsuaccushiftucuvalulast((u+/opt/alt/python33/lib64/python3.3/base64.pyu b32decodeÈsV   $"     #        cCs;t|tƒs(td|jjƒ‚ntj|ƒjƒS(urEncode a byte string using Base16. s is the byte string to encode. The encoded byte string is returned. uexpected bytes, not %s(u isinstanceu bytes_typesu TypeErroru __class__u__name__ubinasciiuhexlifyuupper(us((u+/opt/alt/python33/lib64/python3.3/base64.pyu b16encodescCsRt|ƒ}|r!|jƒ}ntjd|ƒrEtjdƒ‚ntj|ƒS(uˆDecode a Base16 encoded byte string. s is the byte string to decode. Optional casefold is a flag specifying whether a lowercase alphabet is acceptable as input. For security purposes, the default is False. The decoded byte string is returned. binascii.Error is raised if s were incorrectly padded or if there are non-alphabet characters present in the string. s [^0-9A-F]uNon-base16 digit found(u_bytes_from_decode_datauupperureusearchubinasciiuErroru unhexlify(usucasefold((u+/opt/alt/python33/lib64/python3.3/base64.pyu b16decodes iLcCs…x~|jtƒ}|sPnxCt|ƒtkra|jtt|ƒƒ}|sTPn||7}qWtj|ƒ}|j|ƒqdS(u1Encode a file; input and output are binary files.N(ureadu MAXBINSIZEulenubinasciiu b2a_base64uwrite(uinputuoutputusunsuline((u+/opt/alt/python33/lib64/python3.3/base64.pyuencode:scCs<x5|jƒ}|sPntj|ƒ}|j|ƒqdS(u1Decode a file; input and output are binary files.N(ureadlineubinasciiu a2b_base64uwrite(uinputuoutputulineus((u+/opt/alt/python33/lib64/python3.3/base64.pyudecodeIs  cCsˆt|tƒs(td|jjƒ‚ng}xJtdt|ƒtƒD]0}|||t…}|jt j |ƒƒqGWdj |ƒS(uTEncode a bytestring into a bytestring containing multiple lines of base-64 data.uexpected bytes, not %sis( u isinstanceu bytes_typesu TypeErroru __class__u__name__urangeulenu MAXBINSIZEuappendubinasciiu b2a_base64ujoin(usupiecesuiuchunk((u+/opt/alt/python33/lib64/python3.3/base64.pyu encodebytesSscCs)ddl}|jdtdƒt|ƒS(uLegacy alias of encodebytes().iNu7encodestring() is a deprecated alias, use encodebytes()i(uwarningsuwarnuDeprecationWarningu encodebytes(usuwarnings((u+/opt/alt/python33/lib64/python3.3/base64.pyu encodestring^s   u encodestringcCs5t|tƒs(td|jjƒ‚ntj|ƒS(u6Decode a bytestring of base-64 data into a bytestring.uexpected bytes, not %s(u isinstanceu bytes_typesu TypeErroru __class__u__name__ubinasciiu a2b_base64(us((u+/opt/alt/python33/lib64/python3.3/base64.pyu decodebytesfscCs)ddl}|jdtdƒt|ƒS(uLegacy alias of decodebytes().iNu7decodestring() is a deprecated alias, use decodebytes()i(uwarningsuwarnuDeprecationWarningu decodebytes(usuwarnings((u+/opt/alt/python33/lib64/python3.3/base64.pyu decodestringls   u decodestringc Cs|ddl}ddl}y)|j|jdd…dƒ\}}Wn`|jk r£}z=|j|_t|ƒtd|jdƒ|jdƒWYdd}~XnXt}xj|D]b\}}|dkrÒt}n|dkrçt }n|d krüt }n|d kr±t ƒdSq±W|r_|dd kr_t |dd ƒ}|||jj ƒWdQXn||j j |jj ƒdS( uSmall main programiNiudeutuusage: %s [-d|-e|-u|-t] [file|-] -d, -u: decode -e: encode (default) -t: encode and decode string 'Aladdin:open sesame'iu-eu-du-uu-tu-urb(usysugetoptuargvuerrorustderrustdoutuprintuexituencodeudecodeutestuopenubufferustdin( usysugetoptuoptsuargsumsgufuncuouauf((u+/opt/alt/python33/lib64/python3.3/base64.pyumainus0)       umaincCsdd}tt|ƒƒt|ƒ}tt|ƒƒt|ƒ}tt|ƒƒ||ks`t‚dS(NsAladdin:open sesame(uprinturepru encodebytesu decodebytesuAssertionError(us0us1us2((u+/opt/alt/python33/lib64/python3.3/base64.pyutests  utestu__main__F()u__doc__ureustructubinasciiu__all__ubytesu bytearrayu bytes_typesu_bytes_from_decode_datauNoneu b64encodeuFalseu b64decodeustandard_b64encodeustandard_b64decodeu maketransu_urlsafe_encode_translationu_urlsafe_decode_translationuurlsafe_b64encodeuurlsafe_b64decodeu _b32alphabetusorteduitemsu_b32tabudictu_b32revu b32encodeu b32decodeu b16encodeu b16decodeu MAXLINESIZEu MAXBINSIZEuencodeudecodeu encodebytesu encodestringu decodebytesu decodestringumainutestu__name__(((u+/opt/alt/python33/lib64/python3.3/base64.pyus\            +M