a XC?h�B � @ s� g d �Z ddlZddlZddlZddlZddlZddlZddlZddl m Z ddl mZ ddl m Z ddl mZmZmZ ddlmZ dZd Zd Zd ZdZe�d�Ze�d �Zdd� Zdd� Zd@dd�Zdd� Zdd� ZdZ dd�dd�Z!dd� Z"dd � Z#d!d"� Z$d#d$� Z%dAd&d'�Z&dBd(d)�Z'dCd*d+�Z(d,d-� Z)dd�d.d/�Z*d0d1� Z+d2d3� Z,dDd4d5�Z-e�d6ej.�Z/d7d8� Z0dEd;d<�Z1dFd>d?�Z2dS )G)�collapse_rfc2231_value� decode_params�decode_rfc2231�encode_rfc2231� formataddr� formatdate�format_datetime�getaddresses� make_msgid� mktime_tz� parseaddr� parsedate�parsedate_tz�parsedate_to_datetime�unquote� N)�quote)�AddressList)r )r r � _parsedate_tz)�Charsetz, � z �'z[][\\()<>@,:;".]z[\\"]c C s( z| � � W dS ty" Y dS 0 d S )NFT)�encode�UnicodeEncodeError)�s� r �0/opt/alt/python39/lib64/python3.9/email/utils.py�_has_surrogates4 s r c C s | � dd�}|�dd�S )N�utf-8�surrogateescape�replace)r �decode)�stringZoriginal_bytesr r r � _sanitizeA s r" r c C s� | \}}|� d� |r�z|� d� W n: ty^ t|t�rDt|�}|�|�}d||f Y S 0 d}t�|�rrd}t� d|�}d||||f S |S )N�asciiz%s <%s>r �"z\\\g<0>z%s%s%s <%s>) r r � isinstance�strr Z header_encode� specialsre�search� escapesre�sub)Zpair�charset�nameZaddressZencoded_nameZquotesr r r r M s r c c s\ d}d}t | �D ]8\}}|r0|d| fV d}q|dkr>d}q||fV q|rX|dfV d S )Nr F�\T)� enumerate)�addr�pos�escape�chr r r �_iter_escaped_charsn s r3 c C s� d| vr| S d}d }g }t | �D ]D\}}|dkr |d u r>|}q ||krX|�| ||� � |d }d }q |t| �k r�|�| |d � � d�|�S )Nr$ r � r )r3 �append�len�join)r/ �startZopen_pos�resultr0 r2 r r r �_strip_quoted_realnames} s r: T)�strictc C s� |s&t