3 ¦ fý ã @ sd d Z ddlZddlZddlZdddgZG dd„ deƒZd dd„Zdd d„Zd d„ Z e dkr`e ƒ dS )zƒImplementation of the UUencode and UUdecode functions. encode(in_file, out_file [,name, mode]) decode(in_file [, out_file, mode]) é NÚErrorÚencodeÚdecodec @ s e Zd ZdS )r N)Ú__name__Ú __module__Ú__qualname__© r r ú'/opt/alt/python36/lib64/python3.6/uu.pyr ' s c C s\ g }�z6| dkrt jj} n`t| tƒrz|dkr8tjj| ƒ}|dkrfytj| ƒj }W n t k rd Y nX t| dƒ} |j| ƒ |dkrŒt j j}nt|tƒrªt|dƒ}|j|ƒ |dkr¶d}|dkrÂd}|jddƒ}|jdd ƒ}|jd |d@ |f jdƒƒ | jd ƒ}x.t|ƒdk�r.|jtj|ƒƒ | jd ƒ}�qW |jdƒ W dx|D ]}|jƒ �qDW X dS )z Uuencode fileú-NÚrbÚwbi¶ Ú z\nú z\rzbegin %o %s iÿ Úasciié- r s end )ÚsysÚstdinÚbufferÚ isinstanceÚstrÚosÚpathÚbasenameÚstatÚst_modeÚAttributeErrorÚopenÚappendÚstdoutÚreplaceÚwriter ÚreadÚlenÚbinasciiZb2a_uuÚclose)Úin_fileÚout_fileÚnameÚmodeÚopened_filesÚdataÚfr r r r * sB Fc C s: g }| dkrt jj} nt| tƒr4t| dƒ} |j| ƒ �zäxr| jƒ }|sNtdƒ‚|j dƒsZq:|j ddƒ}t|ƒdkr:|d dkr:yt|d d ƒ P W q: t k r¦ Y q:X q:W |dkrà|d jdƒjd ƒ}tjj|ƒràtd| ƒ‚|dkröt|d d ƒ}|dk�r t jj}nNt|tƒ�rXt|dƒ}ytjj||ƒ W n tk �rH Y nX |}|j|ƒ | jƒ }x¨|�r|jdƒdk�rytj|ƒ} W nj tjk �rð } zJ|d d d@ d d d }tj|d|… ƒ} |�sàt jjd| ƒ W Y dd} ~ X nX |j| ƒ | jƒ }�qbW |�stdƒ‚W dx|D ]}|jƒ �q"W X dS )zDecode uuencoded filer r z'No valid begin line found in input files beginó é é r é é Ns r z"Cannot overwrite existing file: %sr s endé é? é é zWarning: %s zTruncated input file)r r r r r r r Úreadliner Ú startswithÚsplitr" ÚintÚ ValueErrorÚrstripr r r Úexistsr Úchmodr Ústripr# Za2b_uuÚstderrr r$ ) r% r&