
    =Og&                        	 g d Z ddlZddlmZmZmZ dZdZdZd  e	d          D             Z
e
dd         Ze
dd         Zd	 ej        d
          z    ej        d
          z   D ]Z ee          ee<   de ed          <   dD ]Z ee          ee<   d Zd Zd Zd ZddZd Zd ZddZedd         ZdD ]Z ee          ee<   [defdZefdZeZeZd Zd ZdS ))
body_decodebody_encodebody_lengthdecodedecodestringheader_decodeheader_encodeheader_lengthquoteunquote    N)ascii_lettersdigits	hexdigits

 c                     g | ]}d |z  S )z=%02X ).0cs     )/usr/lib64/python3.11/email/quoprimime.py
<listcomp>r   7   s    ///qw{///       s   -!*+/ascii_ s_    !"#$%&'()*+,-./0123456789:;<>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~	c                 @    	 t          |           t          |          k    S N)chr_QUOPRI_HEADER_MAPoctets    r   header_checkr$   J   s    Hu::+E222r   c                 @    	 t          |           t          |          k    S r   )r    _QUOPRI_BODY_MAPr"   s    r   
body_checkr'   O   s    Fu::)%000r   c                 6    	 t          d | D                       S )Nc              3   J   K   | ]}t          t          |                   V  d S r   )lenr!   r   r#   s     r   	<genexpr>z header_length.<locals>.<genexpr>^   s0      EE%s%e,--EEEEEEr   sum	bytearrays    r   r	   r	   T   s&     EE9EEEEEEr   c                 6    	 t          d | D                       S )Nc              3   J   K   | ]}t          t          |                   V  d S r   )r*   r&   r+   s     r   r,   zbody_length.<locals>.<genexpr>h   s0      CCs#E*++CCCCCCr   r-   r/   s    r   r   r   a   s&     CCCCCCCCr   c                 n   t          |t                    st          |          }| s)|                     |                                           d S t          | d                   t          |          z   |k    r| dxx         ||z   z  cc<   d S |                     |                                           d S )N)
isinstancestrr    appendlstripr*   )Lsmaxlenextras       r   _max_appendr=   k   s    a FF 		QrUc!ff		&	&	"	r   c                 N    	 t          t          | dd         d                    S )N         )r    intr:   s    r   r   r   v   s#    Ns1QqS62r   c                 6    t           t          |                    S r   )_QUOPRI_MAPord)r   s    r   r
   r
   {   s    s1vvr   
iso-8859-1c                 x    	 | sdS |                      d                              t                    }d|d|dS )Nr   latin1z=?z?q?z?=)r   	translater!   )header_bytescharsetencodeds      r   r   r      sO    	  r!!(++556HIIGG $GGWWW--r   s   
L   c                 J   	 |dk     rt          d          | s| S |                     t                    } d|z   }|dz
  }g }|j        }|                                 D ]}d}t          |          dz
  |z
  }	||	k    rv||z   }
||
dz
           dk    r ||||
dz
                      |
dz
  }n@||
dz
           dk    r ||||
                    |
dz
  }n ||||
         dz              |
}||	k    v|rm|d         dv rc||	z
  }|d	k    rt          |d                   }n*|dk    r|d         |z   }n|t          |d                   z   } |||d         |z               |||d                     | d         t          v r |d
           |                    |          S )N   zmaxlinelen must be at least 4=r?   r      r4   z 	r@   r   )	
ValueErrorrJ   _QUOPRI_BODY_ENCODE_MAPr7   
splitlinesr*   r
   CRLFjoin)body
maxlineleneol
soft_breakmaxlinelen1encoded_bodyr7   linestart	laststartstoproomqs                r   r   r      s"   $ A~~8999  >>122DsJq.KL F!! !! !!IIMJ.	y  ;&DD1H~$$tE$(N+,,,qdQh3&&tE$J'(((qtE$J'#-... y    	!DH%%9$Dqyy $r(OOHz) tBx0F4b>A%&&&&F4<     Bx4r


88L!!!r   c                     	 | s| S d}|                                  D ]}|                                }|s||z  }d}t          |          }||k     r||         }|dk    r||z  }|dz  }ni|dz   |k    r|dz  }.|dz   |k     rG||dz            t          v r5||dz            t          v r#|t	          |||dz                      z  }|dz  }n
||z  }|dz  }||k    r||z  }||k     | d         dvr|                    |          r
|d d         }|S )	Nr   r   rQ   r?   rR   r@   r4   r   )rU   rstripr*   r   r   endswith)rM   rZ   decodedr^   inr   s          r   r   r      su      G""$$  {{}} 	sNGII!eeQACxx1Q 1Q1qT!A#Y)33QqS	Y8N8N74!A#;///Q 1QAvv3) !ee, r{&  W%5%5c%:%: #2#,Nr   c                 L    	 |                      d          }t          |          S )Nr   )groupr   )matchr:   s     r   _unquote_matchrm     s     MAA1::r   c                 ~    	 |                      dd          } t          j        dt          | t          j                  S )Nr   r   z=[a-fA-F0-9]{2})flags)replaceresubrm   ASCIIrC   s    r   r   r   $  s8     	
		#sA6$narxHHHHr   )r   )rG   ) __all__rq   stringr   r   r   rV   NLEMPTYSTRINGrangerE   r!   r&   encoder   r    rF   r$   r'   r	   r   r=   r   r
   r   rT   r   r   r   r   rm   r   r   r   r   <module>rz      sE  
0   
			 3 3 3 3 3 3 3 3 3 3	 0/EE#JJ/// ^ qqq>  
(M(11	1MFM'4J4J	J # #ACFFq" 33s88 . ! !A #a&&Q
3 3 3
1 1 1

F 
F 
FD D D        
  . . . .* +111- 	 ( (A!$QA!# I" I" I" I"^  , , , ,`   I I I I Ir   