
    ,hh~T                        S SK r S SKrS SKr/ SQr\\4rS rS9S jrS:S jr	S r
S r\R                  S	S
5      r\R                  S
S	5      rS rS rSrSrSrSrSr0 r0 rS rS;S jrS r\R7                  SS9\l        S;S jr\R7                  S\S9\l        S r\R7                  SS9\l        S<S jr\R7                  SSS9\l        S r S<S jr!Sq"Sq#Sr$S r%S=S! jr&SS SSS".S# jr'SSS$S%.S& jr(S'r)Sq*Sq+Sq,S<S( jr-S) r.S*r/S+r0\R                  \/\0-   \)S,\1" \05      -  -   5      r2\R                  \)\/5      r3S- r4S. r5S/r6\6S0-  S1-  r7S2 r8S3 r9S4 r:S5 r;S6 r<S7 r=\>S8:X  a  \=" 5         gg)>    N)encodedecodeencodebytesdecodebytes	b64encode	b64decode	b32encode	b32decodeb32hexencodeb32hexdecode	b16encode	b16decode	b85encode	b85decode	a85encode	a85decode	z85encode	z85decodestandard_b64encodestandard_b64decodeurlsafe_b64encodeurlsafe_b64decodec                 F   [        U [        5      (       a   U R                  S5      $ [        U [
        5      (       a  U $  [        U 5      R                  5       $ ! [         a    [	        S5      ef = f! [         a$    [        SU R                  R                  -  5      S ef = f)Nasciiz4string argument should contain only ASCII charactersz>argument should be a bytes-like object or ASCII string, not %r)
isinstancestrr   UnicodeEncodeError
ValueErrorbytes_types
memoryviewtobytes	TypeError	__class____name__ss    //opt/python-3.13.8/usr/lib/python3.13/base64.py_bytes_from_decode_datar(   "   s    !S	U88G$$ ![!!K!}$$&& " 	USTT	U  K )+,;;+?+?@ AFJ	KKs   A  A2 A/2.B c                     [         R                  " U SS9nUb%  UR                  [        R	                  SU5      5      $ U$ )NF)newline   +/)binascii
b2a_base64	translatebytes	maketrans)r&   altcharsencodeds      r'   r   r   3   s=     !!!U3G  !ABBN    Fc                     [        U 5      n Ub0  [        U5      nU R                  [        R                  US5      5      n [        R
                  " XS9$ )Nr+   )strict_mode)r(   r.   r/   r0   r,   
a2b_base64)r&   r1   validates      r'   r   r   A   sH    $ 	 "A*84KK%89q77r3   c                     [        U 5      $ N)r   r%   s    r'   r   r   [   s    
 Q<r3   c                     [        U 5      $ r9   )r   r%   s    r'   r   r   b   s     Q<r3   r+   s   -_c                 >    [        U 5      R                  [        5      $ r9   )r   r.   _urlsafe_encode_translationr%   s    r'   r   r   p   s     Q<!!"=>>r3   c                 X    [        U 5      n U R                  [        5      n [        U 5      $ r9   )r(   r.   _urlsafe_decode_translationr   r%   s    r'   r   r   y   s'     	 "A	/0AQ<r3   zK
Encode the bytes-like objects using {encoding} and return a bytes object.
a  
Decode the {encoding} encoded bytes-like object or ASCII string s.

Optional casefold is a flag specifying whether a lowercase alphabet is
acceptable as input.  For security purposes, the default is False.
{extra_args}
The result is returned as a bytes object.  A binascii.Error is raised if
the input is incorrectly padded or if there are non-alphabet
characters present in the input.
a  
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.
s    ABCDEFGHIJKLMNOPQRSTUVWXYZ234567s    0123456789ABCDEFGHIJKLMNOPQRSTUVc                    U [         ;  aE  U  Vs/ s H  n[        U45      PM     nnU VVs/ s H  oC  H  oTU-   PM	     M     snn[         U '   S n[        U[        5      (       d  [	        U5      R                  5       n[        U5      S-  nU(       a  USSU-
  -  -   n[        5       n[        R                  n[         U    n	[        S[        U5      S5       H8  nU" XUS-    5      n
XyU
S-	     XS-	  S-     -   XS-	  S-     -   XS-     -   -  nM:     US:X  a  S	US
S & O#US:X  a  SUSS & OUS:X  a  SUSS & OUS:X  a  SUSS & [        U5      $ s  snf s  snnf )N       r         i  
      s   ======i   s   ====   s   ===      =)_b32tab2r/   r   r   r    r!   len	bytearrayint
from_bytesrange)alphabetr&   ib32tabableftoverr2   rQ   b32tab2cs              r'   
_b32encoder[      s{    x'/0x!%+x0-3DVV!eVeVDa%%qM!!#1vzHX&&kGJx G1c!fa qAE{#AG$"W-./"W-./ I&' 	 ! 1} 	Q	Q	Q>; 1Ds
   EEc                    U [         ;  a'  [        U 5       VVs0 s H  u  pEXT_M	     snn[         U '   [        U5      n[        U5      S-  (       a  [        R
                  " S5      eUb3  [        U5      nUR                  [        R                  SSU-   5      5      nU(       a  UR                  5       n[        U5      nUR                  S5      nU[        U5      -
  n[        5       n[         U    n	[        S[        U5      S5       H3  n
XU
S-    nSn U H  nUS-  X   -   nM     XR                  S5      -  nM5     US-  (       d  US	;  a  [        R
                  " S5      eU(       a3  U(       a,  WSU-  -  nUR                  S5      nS
SU-  -
  S-  nUS U USS & [        U5      $ s  snnf ! [         a    [        R
                  " S5      S ef = f)N   zIncorrect paddings   01   OrK   r   r@   zNon-base32 digit found>   r   rE   rH   rJ      +   )_b32rev	enumerater(   rN   r,   Errorr.   r/   r0   upperrstriprO   rR   KeyErrorto_bytes)rS   r&   casefoldmap01kvlpadcharsdecodedb32revrT   quantaaccrZ   lastrX   s                   r'   
_b32decodert      s    w.7.AB.AdaQT.AB"A
1vznn011 '.KKte|<=GGI 	AA	A3q6zHkGXF1c!fa a!e	Eax69,  	<<?" ! 	1u/nn011GH||AX%!+IX>O C8  	E..!9:D	Es   F(F.."Gc                 "    [        [        U 5      $ r9   )r[   _b32alphabetr%   s    r'   r	   r	      s    lA&&r3   base32)encodingc                 $    [        [        XU5      $ r9   )rt   rv   )r&   ri   rj   s      r'   r
   r
      s    lA77r3   )rx   
extra_argsc                 "    [        [        U 5      $ r9   )r[   _b32hexalphabetr%   s    r'   r   r      s    oq))r3   	base32hexc                 "    [        [        X5      $ r9   )rt   r|   r&   ri   s     r'   r   r     s    oq33r3    c                 J    [         R                  " U 5      R                  5       $ r9   )r,   hexlifyre   r%   s    r'   r   r     s     A$$&&r3   c                     [        U 5      n U(       a  U R                  5       n [        R                  " SU 5      (       a  [        R
                  " S5      e[        R                  " U 5      $ )Ns	   [^0-9A-F]zNon-base16 digit found)r(   re   researchr,   rd   	unhexlifyr   s     r'   r   r     sN     	 "AGGI	yyq!!nn566a  r3   s   <~s   ~>c                    [        U [        5      (       d  [        U 5      R                  5       n [	        U 5      * S-  nU(       a  U SU-  -   n [
        R                  " S[	        U 5      S-  -  5      R                  U 5      nU Vs/ s H<  nU(       a	  U(       d  SO(U(       a  US:X  a  SOX(S-     X(S-  S	-     -   XS-     -   PM>     n	nU(       a'  U(       d   U	S
   S:X  a  US   S-  U	S
'   U	S
   S U*  U	S
'   SR                  U	5      $ s  snf )NrJ   rA   z!%dI   zi       yi^	 U   i9  rL   r   r@   r3   )	r   r   r    r!   rN   structStructunpackjoin)
rW   charschars2padfoldnuls
foldspacespaddingwordswordchunkss
             r'   	_85encoder   .  s   a%%qM!!#Aw!mGMM&CFaK0188;E  !
  $ td TZ%7dfn%bj4'()BY !
    ! s":qAF2JBZ	'*r
88F!s   AD	)r   wrapcolr   adobec                L   [         cP  [        SS5       Vs/ s H  n[        U45      PM     snq[         VV s/ s H  n[          H  oU -   PM	     M     sn nq [	        W [        [         USU5      nU(       a	  [
        U-   nU(       a}  [        U(       a  SOSU5      n[        S[        U5      U5       Vs/ s H	  nXuXR-    PM     nnU(       a&  [        US   5      S-   U:  a  UR                  S5        S	R                  U5      nU(       a	  U[        -  nU$ s  snf s  sn nf s  snf )
N!   v   TrF   rE   r   rL   r3      
)
_a85chars2rR   r/   	_a85charsr   	_A85STARTmaxrN   appendr   _A85END)	rW   r   r   r   r   rT   rV   resultr   s	            r'   r   r   F  s   ( */C.9.QUA4[.9	'0Dy!))Q1u)uyD
q)ZdJGFV#5aa1 CK9;9a AK(9 	 ;6":"W,c"F#'M% :D;s   DD4D!s    	
)r   r   ignorecharsc                   [        U 5      n U(       a]  U R                  [        5      (       d  [        SR	                  [        5      5      eU R                  [        5      (       a  U SS n OU S S n [        R                  " S5      R                  n/ nUR                  n/ nUR                  nUR                  n	U S-    H  n
SU
s=::  a  S::  aJ  O  OGU" U
5        [        U5      S:X  a.  S	nU H  n
S
U-  U
S-
  -   nM      U" U" U5      5        U	" 5         MX  MZ  U
S:X  a  U(       a  [        S5      eU" S5        M|  U(       a"  U
S:X  a  U(       a  [        S5      eU" S5        M  X;   a  M  [        SU
-  5      e   SR                  U5      nS[        U5      -
  nU(       a  US U*  nU$ ! [        R                   a    [        S5      S ef = f)Nz1Ascii85 encoded byte sequences must end with {!r}rF   !Is   uuuur   u   r@   r   r   zAscii85 overflowz   zz inside Ascii85 5-tuples       y   zy inside Ascii85 5-tuples       zNon-Ascii85 digit found: %cr3   rJ   )r(   endswithr   r   format
startswithr   r   r   packr   clearrN   errorr   )rW   r   r   r   packIro   decoded_appendcurrcurr_append
curr_clearxrr   r   r   s                 r'   r   r   o  s     	 "Azz'"""F7O  <<	""!BA#2A
 MM$$$EG^^ND++KJ\a"7"N4yA~As(a"f-C C"5:.   '\ !;<<;'AL !;<<./:Q>??1 4 XXgF#d)mG	'"M- || C$%78dBCs   >F''!GsU   0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~c                     [         cJ  [         Vs/ s H  n[        U45      PM     snq[         VV s/ s H  n[          H  oU -   PM	     M     sn nq [	        W [        [         U5      $ s  snf s  sn nf r9   )
_b85chars2_b85alphabetr/   	_b85charsr   )rW   r   rT   rV   s       r'   r   r     s]     *67,QUA4[,7	'0Dy!))Q1u)uyD
Q	:s33 8Ds
   A(A-c                    [         c'  S /S-  q [        [        5       H  u  pU[         U'   M     [        U 5      n [	        U 5      * S-  nU SU-  -   n / n[
        R                  " S5      R                  n[        S[	        U 5      S5       H=  nXUS-    nSn U H  nUS-  [         U   -   nM      UR                  U" U5      5        M?     S	R                  U5      n	U(       a  U	S U*  n	U	$ ! [         a1    [        U5       H   u  p[         U   b  M  [        SX-   -  5      S e   e f = f! [
        R                   a    [        SU-  5      S ef = f)
N   r@      ~r   r   r   z#bad base85 character at position %dz+base85 overflow in hunk starting at byte %dr3   )_b85decrc   r   r(   rN   r   r   r   rR   r"   r   r   r   r   )
rW   rT   rZ   r   outr   chunkrr   jr   s
             r'   r   r     sq    &3,l+DAGAJ , 	 "AAw!mG	D7NA
CMM$$$E1c!fa AE
	Bh+ 	,JJuSz" !$ XXc]F	'"M  	!%(1:%$%J'(u&. /489 ) 	 || 	,J ! "'+,	,s   C*/D(*"D%D%($EsU   0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#s   ;_`|~rA   c                 >    [        U 5      R                  [        5      $ r9   )r   r.   _z85_encode_translationr%   s    r'   r   r     s    Q<!!"9::r3   c                     [        U 5      n U R                  [        5      n  [        U 5      $ ! [         a.  n[	        UR
                  S   R                  SS5      5      S eS nAff = f)Nr   base85z85)r(   r.   _z85_decode_translationr   r   argsreplace)r&   es     r'   r   r     sa    
 	 "A	+,AG| G**8U;<$FGs   
- 
A%)A  A%L   rJ   rH   c                    U R                  [        5      =n(       a  [        U5      [        :  ai  U R                  [        [        U5      -
  5      =n(       aA  X#-  n[        U5      [        :  a*  U R                  [        [        U5      -
  5      =n(       a  MA  [        R                  " U5      nUR                  U5        U R                  [        5      =n(       a  M  g g r9   )read
MAXBINSIZErN   r,   r-   write)inputoutputr&   nslines        r'   r   r     s    zz*%
%!
%!fz!UZZ
3q68I-J'Jr'JGA !fz!UZZ
3q68I-J'Jr'J""1%T	 zz*%
%!
%
%r3   c                     U R                  5       =n(       aA  [        R                  " U5      nUR                  U5        U R                  5       =n(       a  M@  g g r9   )readliner,   r6   r   )r   r   r   r&   s       r'   r   r     sF    .."
"$
"%Q .."
"$
"
"r3   c                     [        U 5      nUR                  S;  a3  SUR                  < SU R                  R                  < 3n[        U5      eUR
                  S:w  a0  SUR
                  U R                  R                  4-  n[        U5      eg ! [         a*  nSU R                  R                  -  n[        U5      UeS nAff = f)Nz"expected bytes-like object, not %s)rZ   rW   Bz#expected single byte elements, not z from rE   z(expected 1-D data, not %d-D data from %s)r    r"   r#   r$   r   ndim)r&   merrmsgs       r'   _input_type_checkr   %  s    &qM 	xx&+,88Q[[5I5IKnvv{9+,661;;3G3G*HIn   &2Q[[5I5IIn#%&s   B 
C%C  Cc                     [        U 5        / n[        S[        U 5      [        5       H3  nXU[        -    nUR	                  [
        R                  " U5      5        M5     SR                  U5      $ )Nr   r3   )r   rR   rN   r   r   r,   r-   r   )r&   piecesrT   r   s       r'   r   r   5  s^     aF1c!fj)a*n%h))%01 * 88Fr3   c                 D    [        U 5        [        R                  " U 5      $ r9   )r   r,   r6   r%   s    r'   r   r   @  s    aq!!r3   c                     SS K n SS KnSU R                  S    S3n UR                  U R                  SS  S5      u  p4[        nW H<  u  pxUS:X  a  [        nUS:X  a  [        nUS	:X  a  [        nUS
:X  d  M1  [        U5          g    W(       a>  US   S:w  a5  [        US   S5       n	U" XR
                  R                  5        S S S 5        g U" U R                  R                  U R
                  R                  5        g ! UR                   aC  nU R                  U l        [        U5        [        U5        U R                  S5         S nAGNS nAff = f! , (       d  f       g = f)Nr   zusage: zx [-h|-d|-e|-u] [file|-]
        -h: print this help message and exit
        -d, -u: decode
        -e: encode (default)rE   hdeurF   z-ez-dz-uz-h-rb)sysgetoptargvr   stderrstdoutprintexitr   r   openbufferstdin)
r   r   usageoptsr   r   funcorV   fs
             r'   mainr   G  s"   } %  E]]388AB<8
 D9Vd9Vd9Vd9eElF	 
 Q3$q'4 AJJ%%& !  	SYYszz001 << ZZ
c
e	 ! s#   !C= %E=E8EE
E!__main__r9   )NF)FN)F)FFF)?r   r   r,   __all__r/   rO   r   r(   r   r   r   r   r0   r<   r>   r   r   _B32_ENCODE_DOCSTRING_B32_DECODE_DOCSTRING_B32_DECODE_MAP01_DOCSTRINGrv   r|   rM   rb   r[   rt   r	   r   __doc__r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   _z85alphabet_z85_b85_decode_diffrN   r   r   r   r   MAXLINESIZEr   r   r   r   r   r   r   r$    r3   r'   <module>r      s+   
  $ i K"84 $ooeU; #ooeU; ?$ 	   35
!F+\')00(0C	 8)00(3N 1 P	 *,33[3I 4 -33[?A 4 C '!* 	
	
0  %aU% 'R  %E| DPE	

4'RE   //''7S!5666   //,E ;
G  1na
 "26 zF r3   