???<!-- GIF89;a -->
123123123123
.....................................................................................................................................???<!-- GIF89;a -->
123123123123
.....................................................................................................................................3

  \&              
   @   s`  d ddddddddd	g
Z d
dlZd
dlmZmZmZ dZdZdZdd e	dD Z
e
dd Ze
dd Zx,dejd ejd D ]Zeeee< qW deed< xdD ]Zeeee< qW dd Zdd Zdd Zdd Zd+ddZd d	 Zd!d Zd,d#dZedd Zxd$D ]Zeeee< qW d%efd&dZefd'dZeZeZd(d) Zd*d ZdS )-body_decodebody_encodebody_lengthdecodedecodestringheader_decodeheader_encodeheader_lengthquoteunquote    N)ascii_lettersdigits	hexdigitsz

 c             C   s   g | ]}d | qS )z=%02X ).0cr   r   (/usr/lib64/python3.6/email/quoprimime.py
<listcomp>7   s    r      s   -!*+/ascii_ s_    !"#$%&'()*+,-./0123456789:;<>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~	c             C   s   t | t|  kS )N)chr_QUOPRI_HEADER_MAP)octetr   r   r   header_checkJ   s    r   c             C   s   t | t|  kS )N)r   _QUOPRI_BODY_MAP)r   r   r   r   
body_checkO   s    r   c             C   s   t dd | D S )Nc             s   s   | ]}t t| V  qd S )N)lenr   )r   r   r   r   r   	<genexpr>^   s    z header_length.<locals>.<genexpr>)sum)	bytearrayr   r   r   r   T   s    
c             C   s   t dd | D S )Nc             s   s   | ]}t t| V  qd S )N)r    r   )r   r   r   r   r   r!   h   s    zbody_length.<locals>.<genexpr>)r"   )r#   r   r   r   r   a   s    c             C   sf   t |tst|}| s&| j|j  n<t| d t| |krT| d  || 7  < n| j|j  d S )N   r%   )
isinstancestrr   appendlstripr    )LsmaxlenZextrar   r   r   _max_appendk   s    
r-   c             C   s   t t| dd dS )Nr$         )r   int)r+   r   r   r   r
   v   s    c             C   s   t t|  S )N)_QUOPRI_MAPord)r   r   r   r   r	   {   s    
iso-8859-1c             C   s$   | sdS | j djt}d||f S )Nr   latin1z=?%s?q?%s?=)r   	translater   )Zheader_bytescharsetencodedr   r   r   r      s    s   
L   c             C   s  |dk rt d| s| S | jt} d| }|d }g }|j}x,| j D ]}d}t|d | }	x||	kr|| }
||
d  dkr||||
d   |
d }qd||
d  dkr||||
  |
d }qd||||
 d  |
}qdW |o|d
 dkrX||	 }|dkrt|d }n(|dkr2|d | }n|t|d  }|||d |  qH|||d   qHW | d tkr|d	 |j|S )N   zmaxlinelen must be at least 4=r$   r      z 	r.   r   r%   r%   r%   r%   r%   r%   )	
ValueErrorr5   _QUOPRI_BODY_ENCODE_MAPr(   
splitlinesr    r	   CRLFjoin)ZbodyZ
maxlineleneolZ
soft_breakZmaxlinelen1Zencoded_bodyr(   linestartZ	laststartstopZroomqr   r   r   r      sD    





c             C   s   | s| S d}x| j  D ]}|j }|s0||7 }qd}t|}x||k r|| }|dkrh||7 }|d7 }nv|d |kr|d7 }q>n^|d |k r||d  tkr||d  tkr|t|||d  7 }|d7 }n||7 }|d7 }||kr>||7 }q>W qW | d dkr|j|r|d d	 }|S )
Nr   r   r:   r$   r;   r.   z
r%   r%   )r>   rstripr    r   r
   endswith)r7   rA   ZdecodedrB   inr   r   r   r   r      s8    

,
c             C   s   | j d}t|S )Nr   )groupr
   )matchr+   r   r   r   _unquote_match  s    
rL   c             C   s    | j dd} tjdt| tjdS )Nr   r   z=[a-fA-F0-9]{2})flags)replaceresubrL   ASCII)r+   r   r   r   r   #  s    )r   )r3   ) __all__rO   stringr   r   r   r?   NLZEMPTYSTRINGranger1   r   r   encoder   r   r2   r   r   r   r   r-   r
   r	   r   r=   r   r   r   r   rL   r   r   r   r   r   <module>   sN   




O0