B €/g^-c@sfddlZddlZddlZdddgZGdd„deƒZd ddœdd„Zdd d„Zd d „Ze d krbeƒdS)éNÚErrorÚencodeÚdecodec@s eZdZdS)rN)Ú__name__Z __module__Z __qualname__©rrú/usr/lib64/python3.7/uu.pyr'sF©Úbacktickc Csrg}zL|dkrtjj}n`t|tƒrz|dkr8tj |¡}|dkrfyt |¡j }Wnt k rdYnXt |dƒ}|  |¡|dkrŒtj j}nt|tƒrªt |dƒ}|  |¡|dkr¶d}|dkrÂd}| dd¡}| dd¡}| d |d @|f d ¡¡| d ¡}x2t|ƒd kr2| tj||d¡| d ¡}qW|rF| d¡n | d¡Wdx|D]}| ¡qZWXdS)Nú-ÚrbÚwbi¶Z z\nz z\rz begin %o %s iÿÚasciii-rrs` end s end )ÚsysÚstdinÚbufferÚ isinstanceÚstrÚosÚpathZbasenameZstatZst_modeZAttributeErrorÚopenÚappendÚstdoutZreplaceÚwriterZreadÚlenÚbinasciiZb2a_uuÚclose)Úin_fileÚout_fileZnameÚmoderÚ opened_filesÚdataÚfrrrr*sF              c Csg}|dkrtjj}nt|tƒr4t|dƒ}| |¡zÆxr| ¡}|sNtdƒ‚|  d¡sZq:|  dd¡}t |ƒdkr:|ddkr:yt |d d ƒPWq:t k r¦Yq:Xq:W|dkrà|d d ¡ d ¡}tj |¡ràtd |ƒ‚|dkröt |d d ƒ}|dkr tjj}n0t|tƒr:t|dƒ}t ||¡|}| |¡| ¡}x¨|rê| d ¡dkrêyt |¡} Wnjtjk rÒ} zH|ddd@ddd} t |d| …¡} |sÂtj d| ¡Wdd} ~ XYnX| | ¡| ¡}qDW|sútdƒ‚Wdx|D]} |  ¡qWXdS)Nr r z'No valid begin line found in input filesbegins éiréis r z"Cannot overwrite existing file: %sr sendi i?iiz Warning: %s zTruncated input file)r rrrrrrZreadlinerZ startswithZsplitrZintZ ValueErrorZrstriprrrZexistsrZchmodZstriprZa2b_uuZstderrrr) rrrZquietrZhdrZ hdrfieldsZfpZsrZvZnbytesr rrrrds`               "   cCs4ddl}|jdd}|jdddddd d |jd d d ddd d | ¡\}}t|ƒdkrl| d¡t d¡tjj }tj j }t|ƒdkr|d}t|ƒdkr¤|d}|j rì|j ràt |tƒrÆt|dƒ}nttjddƒt d¡t ||ƒnD|j r&t |tƒr t|dƒ}nttjddƒt d¡t||ƒdS)Nrz'usage: %prog [-d] [-t] [input [output]])Zusagez-dz--decoderzDecode (instead of encode)?FZ store_true)ZdestZhelpZdefaultZactionz-tz--textÚtextz2data is text, encoded format unix-compatible text?r!zincorrect number of argumentsr"r z: cannot do -t to stdoutr z: cannot do -t from stdin)ÚoptparseZ OptionParserZ add_optionZ parse_argsrZerrorr Zexitrrrrr#rrrZprintZargvr)r$ZparserZoptionsZargsZinputZoutputrrrÚtest§s6              r%Z__main__)NN)NNF) rrr Z__all__Z Exceptionrrrr%rrrrrZ!s : C&