
    z%i]!                     0   	 d dl Z d dlZd dlZd dlZd dlmZmZ d dlmZ g dZ	 ej                   e j                  d      j                  d       Zd Z G d d	e      Z e       Zd
e ed      <   d Zd Zd Zd Zd ZeedZd ZeedZeedZddZy)    N)ascii_lettersdigits)errors)decode_qencode_qdecode_bencode_blen_qlen_bdecodeencodes   =([a-fA-F0-9]{2})c                 f    t         j                  | j                  d      j                               S )N   )bytesfromhexgroupr   )ms    H/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/email/_encoded_words.py<lambda>r   A   s     %--
 1 1 34     c                 @    | j                  dd      } t        |       g fS )N   _    )replace_q_byte_subber)encodeds    r   r   r   C   s"    oodD)G'"B&&r   c                   b    e Zd Zd ej                  d      z    ej                  d      z   Zd Zy)	_QByteMaps   -!*+/asciic                 v    || j                   v rt        |      | |<   | |   S dj                  |      | |<   | |   S )Nz={:02X})safechrformat)selfkeys     r   __missing__z_QByteMap.__missing__M   sG    $))CDI Cy "((-DICyr   N)__name__
__module____qualname__r   r   r   r!   r&    r   r   r   r   I   s/    *m**733mfmmG6LLDr   r   _ c                 2    dj                  d | D              S )N c              3   .   K   | ]  }t         |     y wN)_q_byte_map.0xs     r   	<genexpr>zencode_q.<locals>.<genexpr>Z   s     3a;q>3s   )joinbstrings    r   r   r   Y   s    7737333r   c                 &    t        d | D              S )Nc              3   @   K   | ]  }t        t        |           y wr0   )lenr1   r2   s     r   r5   zlen_q.<locals>.<genexpr>]   s     4qs;q>"4s   )sumr7   s    r   r
   r
   \   s    4G444r   c                 P   t        |       dz  }|rdd d|z
   nd}	 t        j                  | |z   d      |rt        j                         gfS g fS # t
        j                  $ r 	 t        j                  | d      t        j                         gfcY S # t
        j                  $ r| 	 t        j                  | dz   d      t        j                         t        j                         gfcY cY S # t
        j                  $ r | t        j                         gfcY cY cY S w xY ww xY ww xY w)N   s   ===r   T)validateFs   ==)	r;   base64	b64decoder   InvalidBase64PaddingDefectbinasciiErrorInvalidBase64CharactersDefectInvalidBase64LengthDefect)r   pad_errmissing_paddings      r   r   r   d   s7    'lQG,3fZai(OEW6F5<V..01
 	
BD
 	
 >> E	E  595578  ~~ 	EE$$Wu_uE99;668: 
 >> E !A!A!C DDDE	EEsZ   0A A D%$+BD%D!&AC,'D!(D%,*DD!D%DD!!D%c                 J    t        j                  |       j                  d      S )Nr   )r@   	b64encoder   r7   s    r   r	   r	      s    G$++G44r   c                 N    t        t        |       d      \  }}|dz  |rdz   S dz   S )N   r>   r   )divmodr;   )r8   groups_of_3leftovers      r   r   r      s0    "3w<3K?8a3333r   )qbc                 >   	 | j                  d      \  }}}}}|j                  d      \  }}}|j                         }|j                  dd      }t	        |   |      \  }}	 |j                  |      }||||fS # t        $ r= |j                  t        j                  d|d             |j                  |d      }Y Kt        t        f$ rP |j                  dd      }|j                         dk7  r(|j                  t        j                  d|d	             Y w xY w)
N?*r   surrogateescapez0Encoded word contains bytes not decodable using z charsetunknown-8bitzUnknown charset z* in encoded word; decoded as unknown bytes)split	partitionlowerr   _cte_decodersr   UnicodeDecodeErrorappendr   UndecodableBytesDefectLookupErrorUnicodeEncodeErrorCharsetError)	ewr+   charsetcte
cte_stringlangr8   defectsstrings	            r   r   r      s6   ( &(XXc]"AwZ((-GQ
))+C):;G$S)'2GW
?( 7D'))  <v44 6229H6F G 	H):;+, ?):;==?n,NN6..1A' M< 0= > ??s   "A9 9AD>ADDc                     	 |dk(  r| j                  dd      }n| j                  |      }|(t        d   |      }t        d   |      }||z
  dk  rdnd}t        |   |      }|rd|z   }dj                  ||||      S )	NrV   r   rU   rP   rQ      rT   z=?{}{}?{}?{}?=)r   _cte_encode_length_cte_encodersr#   )rg   rb   encodingre   r8   qlenblenr   s           r   r   r      s      . --):;--(!#&w/!#&w/+/3sH%g.GTz""7D(GDDr   )zutf-8Nr.   )rer@   rC   	functoolsrg   r   r   emailr   __all__partialcompilesubr   r   dictr   r1   ordr   r
   r   r	   r   rZ   r   rk   rj   r   r*   r   r   <module>rx      s   R 
    (  #"":2::.C#D#H#H46'	 	 k CH 45$EL54 
	
'*V 
	 
	 
Er   