grthtrhthjhtyjytjytkergtrhtrjytjerhrfhU iÛf«Oã@sšddlZddlZddlZdddddddd d d d d ddddddgZeefZdd„ZdBdd„ZdCdd„Z dd„Z dd„Z e  dd¡Z e  dd¡Zdd„Zdd„ZdZdadad d„ZdDd!d „Zd"d „ZdEd#d „Zdadad$Zd%ZdFd&d'„Zddddd(œd)d„Zddd*d+œd,d„Zd-Zda da!da"dGd.d „Z#d/d „Z$d0Z%e%d1d2Z&d3d„Z'd4d„Z(d5d6„Z)d7d„Z*d8d9„Z+d:d„Z,d;d<„Z-d=d>„Z.d?d@„Z/e0dAk�r–e.ƒdS)HéNÚencodeÚdecodeÚ encodebytesÚ decodebytesÚ b64encodeÚ b64decodeÚ b32encodeÚ b32decodeÚ b16encodeÚ b16decodeÚ b85encodeÚ b85decodeÚ a85encodeÚ a85decodeÚstandard_b64encodeÚstandard_b64decodeÚurlsafe_b64encodeÚurlsafe_b64decodecCs|t|tƒr4z | d¡WStk r2tdƒ‚YnXt|tƒrB|Szt|ƒ ¡WStk rvtd|j j ƒd‚YnXdS)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__©Ús©r!ú+/opt/alt/python38/lib64/python3.8/base64.pyÚ_bytes_from_decode_data"s   ÿÿr#cCs,tj|dd�}|dk r(| t d|¡¡S|S)NF)Únewlineó+/)ÚbinasciiÚ b2a_base64Ú translateÚbytesÚ maketrans)r ÚaltcharsÚencodedr!r!r"r3sFcCsNt|ƒ}|dk r*t|ƒ}| t |d¡¡}|rDt d|¡sDt d¡‚t |¡S)Nr%s[A-Za-z0-9+/]*={0,2}zNon-base64 digit found) r#r(r)r*ÚreÚ fullmatchr&ÚErrorÚ a2b_base64)r r+Zvalidater!r!r"rAs cCst|ƒS©N)rrr!r!r"rZscCst|ƒSr1)rrr!r!r"rasr%s-_cCst|ƒ t¡Sr1)rr(Ú_urlsafe_encode_translationrr!r!r"roscCst|ƒ}| t¡}t|ƒSr1)r#r(Ú_urlsafe_decode_translationrrr!r!r"rxs  s ABCDEFGHIJKLMNOPQRSTUVWXYZ234567cs>tdkr,dd„tDƒ‰‡fdd„ˆDƒad‰t|tƒsBt|ƒ ¡}t|ƒd}|rb|dd|}tƒ}tj }t}t dt|ƒdƒD]V}||||d…dƒ}|||d?||d ?d @||d ?d @||d @7}q‚|d krðd |dd…<nF|dk�rd|dd…<n.|dk�r d|dd…<n|dk�r6d|dd…<t |ƒS)NcSsg|]}t|fƒ‘qSr!©r)©Ú.0Úir!r!r"Ú •szb32encode..csg|]}ˆD] }||‘q qSr!r!©r6ÚaÚb©Zb32tabr!r"r8–séórÚbigééiÿé és======iúÿÿÿés====éüÿÿÿés===éýÿÿÿéó=éÿÿÿÿ) Ú_b32tab2Ú _b32alphabetrrrrÚlenÚ bytearrayÚintÚ from_bytesÚranger))r Úleftoverr,rPZb32tab2r7Úcr!r<r"rŽs<    ÿþ ý    c Csztdkrdd„ttƒDƒat|ƒ}t|ƒdr8t d¡‚|dk r^t|ƒ}| t  dd|¡¡}|rj|  ¡}t|ƒ}|  d¡}|t|ƒ}t ƒ}t}t dt|ƒdƒD]h}|||d…}d} z|D]} | d >|| } qÀWn tk røt d ¡d‚YnX||  d d ¡7}q¢|d�s |d k�r*t d¡‚|�rr|�rr| d |K} |  d d ¡} d d |d} | d| …|dd…<t|ƒS)NcSsi|]\}}||“qSr!r!)r6ÚkÚvr!r!r"Ú Êszb32decode..ézIncorrect paddings01óOrIrr=zNon-base32 digit foundr?>rrCrFrHéé+éûÿÿÿ)Ú_b32revÚ enumeraterLr#rMr&r/r(r)r*ÚupperÚrstriprNrQÚKeyErrorÚto_bytes) r ÚcasefoldZmap01ÚlZpadcharsÚdecodedZb32revr7ZquantaÚaccrSZlastrRr!r!r"r ´s@        cCst |¡ ¡Sr1)r&Zhexlifyr^rr!r!r"r ÷scCs4t|ƒ}|r| ¡}t d|¡r*t d¡‚t |¡S)Ns [^0-9A-F]zNon-base16 digit found)r#r^r-Úsearchr&r/Z unhexlify)r rbr!r!r"r ýs   s<~s~>c s¬t|tƒst|ƒ ¡}t|ƒ d}|r4|d|}t dt|ƒd¡ |¡}‡‡‡‡fdd„|Dƒ}|r¢|s¢|ddkrŒˆdd |d<|dd| …|d<d  |¡S) NrHr>z!%dIcsPg|]H}ˆr|sdn6ˆr$|dkr$dn&ˆ|dˆ|ddˆ|d‘qS)ózi óyií^ éUi9r!)r6Zword©ÚcharsÚchars2ÚfoldnulsÚ foldspacesr!r"r8!sû  ÿ þz_85encode..rJrgrr=ó) rrrrrMÚstructÚStructZunpackÚjoin) r;rkrlÚpadrmrnÚpaddingZwordsÚchunksr!rjr"Ú _85encodes   û rv)rnÚwrapcolrsÚadobecsºtdkr*dd„tddƒDƒadd„tDƒat|tt|d|ƒ‰|rHtˆ‰ˆrªt|rVdndˆƒ‰‡‡fd d„td tˆƒˆƒDƒ}|r t|d ƒdˆkr | d ¡d  |¡‰|r¶ˆt 7‰ˆS)NcSsg|]}t|fƒ‘qSr!r4r5r!r!r"r8Dsza85encode..é!évcSsg|]}tD] }||‘q qSr!)Ú _a85charsr9r!r!r"r8EsTrDrCcsg|]}ˆ||ˆ…‘qSr!r!r5©Úresultrwr!r"r8MsÿrrJroó ) Ú _a85chars2rQr{rvÚ _A85STARTÚmaxrMÚappendrrÚ_A85END)r;rnrwrsrxrur!r|r"r/s$ ÿ  s )rnrxÚ ignorecharsc Cs’t|ƒ}|rH| t¡s$td t¡ƒ‚| t¡r<|dd…}n |dd…}t d¡j }g}|j }g}|j }|j } |dD]ì} d| krŽdkrþnnl|| ƒt |ƒdkrüd } |D]} d | | d} q®z||| ƒƒWn tj k rôtd ƒd‚YnX| ƒqv| d k�r |�rtd ƒ‚|dƒqv|�rH| dk�rH|�r>tdƒ‚|dƒqv| |k�rVqvqvtd| ƒ‚qvd |¡} dt |ƒ} | �rŽ| d| …} | S)Nz1Ascii85 encoded byte sequences must end with {!r}rDéþÿÿÿú!Isuuuuryéur=rrizAscii85 overflowézzz inside Ascii85 5-tupleséyzy inside Ascii85 5-tuples zNon-Ascii85 digit found: %crorH)r#ÚendswithrƒrÚformatÚ startswithr€rprqÚpackr‚ÚclearrMÚerrorrr)r;rnrxr„ÚpackIrdZdecoded_appendZcurrZ curr_appendZ curr_clearÚxrer}rtr!r!r"rXsZ ÿÿ           sU0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&()*+-;<=>?@^_`{|}~cCs2tdkr$dd„tDƒadd„tDƒat|tt|ƒS)NcSsg|]}t|fƒ‘qSr!r4r5r!r!r"r8°szb85encode..cSsg|]}tD] }||‘q qSr!)Ú _b85charsr9r!r!r"r8±s)Ú _b85chars2Ú _b85alphabetr’rv)r;rsr!r!r"r ¦s c CsJtdkr,dgdattƒD]\}}|t|<qt|ƒ}t|ƒ d}|d|}g}t d¡j}tdt|ƒdƒD]¸}|||d…}d}z|D]}|dt|}qŒWnFt k rêt|ƒD]&\}}t|dkr¼t d||ƒd‚q¼‚YnXz|  ||ƒ¡Wqntj k �r$t d|ƒd‚YqnXqnd   |¡} |�rF| d| …} | S) Nér=ó~r†rriz#bad base85 character at position %dz+base85 overflow in hunk starting at byte %dro)Ú_b85decr]r”r#rMrprqr�rQrrr‚r�rr) r;r7rSrtÚoutr�ÚchunkreÚjr}r!r!r"r ´sH     ÿÿÿÿ  éLrHrFcCsX| t¡}|sqTt|ƒtkr>| tt|ƒ¡}|s4q>||7}qt |¡}| |¡qdSr1)ÚreadÚ MAXBINSIZErMr&r'Úwrite)ÚinputÚoutputr ÚnsÚliner!r!r"räs    cCs(| ¡}|sq$t |¡}| |¡qdSr1)Úreadliner&r0rž)rŸr r¢r r!r!r"rós  c Cs’z t|ƒ}Wn8tk rD}zd|jj}t|ƒ|‚W5d}~XYnX|jdkrjd|j|jjf}t|ƒ‚|jdkrŽd|j|jjf}t|ƒ‚dS)Nz"expected bytes-like object, not %s)rSr;ÚBz-expected single byte elements, not %r from %srCz(expected 1-D data, not %d-D data from %s)rrrrr‹Úndim)r ÚmÚerrÚmsgr!r!r"Ú_input_type_checküs    ÿ  ÿr©cCsLt|ƒg}tdt|ƒtƒD]$}|||t…}| t |¡¡qd |¡S)Nrro)r©rQrMr�r‚r&r'rr)r Úpiecesr7r™r!r!r"r s cCsddl}| dtd¡t|ƒS)NrzAencodestring() is a deprecated alias since 3.1, use encodebytes()rD)ÚwarningsÚwarnÚDeprecationWarningr©r r«r!r!r"Ú encodestrings þr¯cCst|ƒt |¡Sr1)r©r&r0rr!r!r"rscCsddl}| dtd¡t|ƒS)NrzHdecodestring() is a deprecated alias since Python 3.1, use decodebytes()rD)r«r¬r­rr®r!r!r"Ú decodestring$s þr°c Csddl}ddl}z| |jdd…d¡\}}WnP|jk r~}z0|j|_t|ƒtd|jdƒ| d¡W5d}~XYnXt}|D]@\}}|dkrœt}|dkr¨t }|dkr´t }|d krˆt ƒdSqˆ|�r|dd k�rt |dd ƒ�}|||jj ƒW5QRXn||j j |jj ƒdS) NrrCZdeutz�usage: %s [-d|-e|-u|-t] [file|-] -d, -u: decode -e: encode (default) -t: encode and decode string 'Aladdin:open sesame'rDz-ez-dz-uz-tú-Úrb)ÚsysÚgetoptÚargvr�ÚstderrÚstdoutÚprintÚexitrrÚtestÚopenÚbufferÚstdin) r³r´ZoptsÚargsr¨ÚfuncÚor:Úfr!r!r"Úmain.s2ý rÂcCs<d}tt|ƒƒt|ƒ}tt|ƒƒt|ƒ}tt|ƒƒdS)NsAladdin:open sesame)r¸Úreprrr)Zs0Ús1Ús2r!r!r"rºHs   rºÚ__main__)N)NF)FN)F)FFF)F)1r-rpr&Ú__all__r)rNrr#rrrrr*r2r3rrrLrKr\rr r r r{rr€rƒrvrrr”r’r“r—r r Z MAXLINESIZEr�rrr©rr¯rr°rÂrºrr!r!r!r"Ú s€ò     & C  )H -