a
    ٱBim                     @   sd   d dl Z d dlZd dlZg dZG dd deZdddddZdd	d
Zdd Ze	dkr`e  dS )    N)Errorencodedecodec                   @   s   e Zd ZdS )r   N)__name__
__module____qualname__ r   r   /usr/lib64/python3.9/uu.pyr   &   s   r   Fbacktickc             	   C   sz  g }zX| dkrt jj} n^t| trx|d u r8tj| }|d u rdzt| j	}W n t
yb   Y n0 t| d} ||  |dkrt jj}nt|trt|d}|| |d u rd}|d u rd}|dd}|dd}|d	|d
@ |f d | d}t|dkr,|tj||d | d}q|r>|d n
|d W |D ]}|  qNn|D ]}|  qd0 d S )N-rbwbi  
z\nz\rzbegin %o %s
i  ascii-   r   r
   s   `
end
s    
end
)sysstdinbuffer
isinstancestrospathbasenamestatst_modeAttributeErroropenappendstdoutreplacewriter   readlenbinasciiZb2a_uuclose)in_fileout_filenamemoder   opened_filesdatafr   r   r	   r   )   sJ    








r   c              
   C   s  g }| dkrt jj} nt| tr4t| d} ||  z2|  }|sLtd|	dsXq8|
dd}t|dkr8|d dkr8zt|d	 d
 W qW q8 ty   Y q80 q8|d u r8|d dd}tj|rtd| |	tjs(dtj |v s(tjr8|	tjs(dtj |v r8td| d|d u rPt|d	 d
}|dkrdt jj}n0t|trt|d}t|| |}|| |  }|rD|ddkrDzt|}	W nl tjy, }
 zP|d d d@ d d d }t|d | }	|st jd|
  W Y d }
~
n
d }
~
0 0 ||	 |  }q|sRtdW |D ]}|  qXn|D ]}|  qn0 d S )Nr   r   z'No valid begin line found in input files   begin          r         s    	
r   z Cannot overwrite existing file: z..zRefusing to write to z due to directory traversalr   s   end    ?         zWarning: %s
zTruncated input file)r   r   r   r   r   r   r   readliner   
startswithsplitr$   int
ValueErrorrstripr   r   r   existssepaltsepr    chmodstripr%   Za2b_uustderrr"   r&   )r'   r(   r*   quietr+   ZhdrZ	hdrfieldsfpsr,   vnbytesr-   r   r   r	   r   c   sv    











&

r   c                  C   s4  dd l } | jdd}|jdddddd	d
 |jdddddd	d
 | \}}t|dkrl|d td tjj	}tj
j	}t|dkr|d }t|dkr|d }|jr|jrt|trt|d}nttjd d td t|| nD|jr&t|trt|d}nttjd d td t|| d S )Nr   z'usage: %prog [-d] [-t] [input [output]])usagez-dz--decoder   zDecode (instead of encode)?F
store_true)desthelpdefaultactionz-tz--texttextz2data is text, encoded format unix-compatible text?r/   zincorrect number of argumentsr1   r   z: cannot do -t to stdoutr   z: cannot do -t from stdin)optparseZOptionParserZ
add_option
parse_argsr$   errorr   exitr   r   r    r   rN   r   r   r   printargvr   )rO   parseroptionsargsinputoutputr   r   r	   test   s6    




rZ   __main__)NN)NNF)
r%   r   r   __all__	Exceptionr   r   r   rZ   r   r   r   r   r	   <module>    s   :
J&