3 \k ã @ 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 ú/usr/lib64/python3.6/uu.pyr ' s c C sB g }�z| 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}|jd|d@ |f jdƒƒ | jd ƒ}x,t|ƒd k�r|jtj|ƒƒ | jd ƒ}qêW |jdƒ W dx|D ]}|jƒ �q*W X dS )z Uuencode fileú-NÚrbÚwbi¶ zbegin %o %s iÿ Úasciié- r s end )ÚsysÚstdinÚbufferÚ isinstanceÚstrÚosÚpathÚbasenameÚstatÚst_modeÚAttributeErrorÚopenÚappendÚstdoutÚwriter ÚreadÚlenÚbinasciiZb2a_uuÚclose)Úin_fileÚout_fileÚnameÚmodeÚopened_filesÚdataÚfr r r r * s> 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# r% Úquietr&