a XC?h;)�@s.ddlZddlZddlZddlZddlmZGdd�d�Ze�Zd%dd�Ze� de�d d �Z d � �D]Z e� e e �qfd d �Z d� �D]Ze� dee �q�dd�Ze� de�dd�Zdd�Zdd�Zdd�Zd&dd�Ze�ee�d'd d!�Ze�ejje�d(d#d$�ZeeefD]Ze�ee��qdS))�N)� quoprimimec@s<eZdZdd�Zdd�Zdd�Zdd�Zd d �Zd d �Zd S)�ContentManagercCsi|_i|_dS�N)� get_handlers� set_handlers)�self�r�9/opt/alt/python39/lib64/python3.9/email/contentmanager.py�__init__ szContentManager.__init__cCs||j|<dSr)r)r�key�handlerrrr �add_get_handler szContentManager.add_get_handlercOs�|��}||jvr.|j||g|�Ri|��S|��}||jvr\|j||g|�Ri|��Sd|jvr�|jd|g|�Ri|��St|��dS)N�)Zget_content_typer�get_content_maintype�KeyError)r�msg�args�kwZ content_type�maintyperrr � get_contents   zContentManager.get_contentcCs||j|<dSr)r)rZtypekeyr rrr �add_set_handlerszContentManager.add_set_handlercOsD|��dkrtd��|�||�}|��|||g|�Ri|��dS)NZ multipartz"set_content not valid on multipart)r� TypeError�_find_set_handlerZ clear_content)rr�objrrr rrr � set_contents   zContentManager.set_contentc Cs�d}t|�jD]�}||jvr*|j|S|j}t|dd�}|rNd�||f�n|}|dur^|}||jvrv|j|S||jvr�|j|S|j}||jvr|j|Sqd|jvr�|jdSt|��dS)N� __module__r�.)�type�__mro__r� __qualname__�getattr�join�__name__r) rrrZfull_path_for_error�typZqname�modname� full_path�namerrr r's&       z ContentManager._find_set_handlerN) r"rrr r rrrrrrrr rs   r�replacecCs&|jdd�}|�dd�}|j||d�S)NT��decode�charset�ASCII)�errors)� get_payloadZ get_paramr))rr,Zcontentr*rrr �get_text_content@s  r.�textcCs |jdd�S)NTr(�r-�rrrr �get_non_text_contentGsr2zaudio image video applicationcCs |�d�S�Nrr0r1rrr �get_message_contentMsr4zrfc822 external-bodyzmessage/cCst|�d��Sr3)�bytesr-r1rrr �%get_and_fixup_unknown_message_contentSsr6�messagec s�d�||f�|d<|r�t|dd�s<|j��fdd�|D�}z(|D]}|jrV|jd�|||j<qBWnBtjjy�}z&td� |j |jd���|�WYd}~n d}~00dS) N�/z Content-Typerr&csg|]}�j��|g���qSr)Zheader_factoryZheader_source_parse)�.0�header�Zmprr � ds�z _prepare_set..zInvalid header: {})�policy) r!�hasattrr=Zdefectsr&�emailr,Z HeaderDefect� ValueError�formatZfold)rr�subtype�headersr:�excrr;r � _prepare_set_s$ �  ��rEcCsx|dur|durd}|dur$||d<|dur>|jd|ddd�|durN||d<|durt|��D]\}}|�||�q^dS)NZ attachmentzContent-Disposition�filenameT)r:r'z Content-ID)� set_param�items)r� dispositionrF�cid�paramsr �valuerrr � _finalize_setps�rMcCsVg}|dd}tdt|�|�D]*}||||�}|�t�|��d��q d�|�S)N��r�asciir)�range�len�append�binascii� b2a_base64r)r!)�data�max_line_lengthZ encoded_linesZunencoded_bytes_per_line�iZthislinerrr �_encode_base64�s  rYc s�|�|���}|j�d���fdd�}dd�}|dur�tdd�|D�dd �|jkr�zd ||��d�fWStyxYn0|jd kr�d ||��dd �fS||dd ��}t� |�d�|j�}t � |�} t |�t | �kr�d}nd}t |�d kr�||fS|d k�r||��d�} nj|d k�r*||��dd �} nN|dk�rNt� ||��d�|j�} n*|dk�rjt ||�|j�} ntd�|���|| fS)NrPcs��|��Sr�r!��lines��lineseprr � embedded_body��z#_encode_text..embedded_bodycSsd�|�dS)N� rZr[rrr � normal_body�r`z!_encode_text..normal_bodycss|]}t|�VqdSr)rR)r9�xrrr � �r`z_encode_text..r)�default�7bit�8bit�surrogateescape� zlatin-1�base64�quoted-printablez$Unknown content transfer encoding {})�encode� splitlinesr^�maxrWr)�UnicodeDecodeErrorZcte_typerZ body_encoderTrUrRrYr@rA) �stringr*�cter=r\r_rbZsniffZsniff_qpZ sniff_base64rVrr]r � _encode_text�sD     �     � rr�plain�utf-8c Csdt|d|| �t||||j�\}} |�| �|jdtjj�||�dd�||d<t |||||�dS)Nr/r*T)r'�Content-Transfer-Encoding) rErrr=� set_payloadrGr?r*ZALIASES�getrM) rrprBr*rqrIrFrJrKrCZpayloadrrr �set_text_content�s �rx�rfc822c Cs�|dkrtd��|dkr@|dvr.td�|���|dur:dn|}n0|dkrd|dvr^td �|���d }n |durpd }t|d ||�|�|g�||d <t|||||�dS) N�partialz4message/partial is not supported for Message objectsry)Nrfrg�binaryz*message/rfc822 parts do not support cte={}rgz external-body)Nrfz1message/external-body parts do not support cte={}rfr7ru)r@rArErvrM) rr7rBrqrIrFrJrKrCrrr �set_message_content�s(�� r|rjc Cs�t|||| �|dkr(t||jjd�}nN|dkrNtj|dddd�}|�d�}n(|dkrb|�d�}n|d vrv|�dd �}|�|�||d <t|||||�dS) Nrj)rWrkFT)�istextr:Z quotetabsrPrf)rgr{rhru) rErYr=rWrTZb2a_qpr)rvrM) rrVrrBrqrIrFrJrKrCrrr �set_bytes_content�s    r~)r')rsrtNNNNNN)ryNNNNNN)rjNNNNN)rTZ email.charsetr?Z email.messageZ email.errorsrrZraw_data_managerr.r r2�splitrr4rBr6rErMrYrrrxr�strr|r7ZMessager~r5� bytearray� memoryviewr#rrrr �sL 6    � '� � �