Hacked By AnonymousFox

Current Path : /opt/alt/python37/lib64/python3.7/email/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/email/__pycache__/message.cpython-37.opt-2.pyc

B

YI~d��@s�ddgZddlZddlZddlZddlmZmZddlmZddlm	Z	ddl
mZmZddlm
Zdd	lmZejZd
Ze�d�Zdd
�Zddd�Zdd�Zdd�ZGdd�d�ZGdd�de�ZGdd�de�ZdS)�Message�EmailMessage�N)�BytesIO�StringIO)�utils)�errors)�Policy�compat32)�charset)�decode_bz; z[ \(\)<>@,;:\\"/\[\]\?=]cCs4t|��d�\}}}|s$|��dfS|��|��fS)N�;)�str�	partition�strip)�param�a�sep�b�r�2/opt/alt/python37/lib64/python3.7/email/message.py�_splitparamsrTcCs�|dk	r�t|�dkr�t|t�rL|d7}t�|d|d|d�}d||fSy|�d�Wn2tk
r�|d7}t�|dd�}d||fSX|s�t�|�r�d	|t�	|�fSd||fSn|SdS)
Nr�*��z%s=%s�asciizutf-8�z%s="%s")
�len�
isinstance�tuplerZencode_rfc2231�encode�UnicodeEncodeError�	tspecials�search�quote)r�valuer#rrr�_formatparam's	
r%cCs�dt|�}g}x�|dd�dkr�|dd�}|�d�}x<|dkrt|�dd|�|�dd|�drt|�d|d�}q:W|dkr�t|�}|d|�}d|kr�|�d�}|d|�����d||dd���}|�|���||d�}qW|S)Nrrr�"z\"r�=)r
�find�countr�indexr�lower�append)�sZplist�end�f�irrr�_parseparamIs 
*
,r1cCs4t|t�r&|d|dt�|d�fSt�|�SdS)Nrrr)rrr�unquote)r$rrr�
_unquotevalue]s
r3c@s�eZdZefdd�Zdd�Zdcdd	�Zd
d�Zdddd
�Zdd�Z	dd�Z
dd�Zdd�Zdedd�Z
dfdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zdgd0d1�Zd2d3�Zd4d5�Zdhd6d7�Zd8d9�Zd:d;�Zd<d=�Z d>d?�Z!d@dA�Z"dBdC�Z#dDdE�Z$dFdG�Z%didJdK�Z&djdLdM�Z'dkdPdQ�Z(dldRdS�Z)dmdTdU�Z*dndVdW�Z+dodXdY�Z,dZd[�Z-dpd\d]�Z.dqd^d_�Z/d`da�Z0ddbl1m2Z2dS)rrcCs:||_g|_d|_d|_d|_d|_|_g|_d|_dS)Nz
text/plain)	�policy�_headers�	_unixfrom�_payload�_charsetZpreambleZepilogue�defects�
_default_type)�selfr4rrr�__init__xszMessage.__init__cCs|��S)N)�	as_string)r;rrr�__str__�szMessage.__str__FrNcCsJddlm}|dkr|jn|}t�}||d||d�}|j||d�|��S)Nr)�	GeneratorF)�mangle_from_�maxheaderlenr4)�unixfrom)�email.generatorr?r4r�flatten�getvalue)r;rBrAr4r?�fp�grrrr=�szMessage.as_stringcCs|��S)N)�as_bytes)r;rrr�	__bytes__�szMessage.__bytes__cCsHddlm}|dkr|jn|}t�}||d|d�}|j||d�|��S)Nr)�BytesGeneratorF)r@r4)rB)rCrJr4rrDrE)r;rBr4rJrFrGrrrrH�szMessage.as_bytescCst|jt�S)N)rr7�list)r;rrr�is_multipart�szMessage.is_multipartcCs
||_dS)N)r6)r;rBrrr�set_unixfrom�szMessage.set_unixfromcCs|jS)N)r6)r;rrr�get_unixfrom�szMessage.get_unixfromcCsF|jdkr|g|_n.y|j�|�Wntk
r@td��YnXdS)Nz=Attach is not valid on a message with a non-multipart payload)r7r,�AttributeError�	TypeError)r;�payloadrrr�attach�s

zMessage.attachcCs�|��r(|rdS|dkr|jS|j|S|dk	rNt|jt�sNtdt|j���|j}t|�dd����}t|t�r�t	�
|�r�|�dd�}|s�y|�|�
dd�d�}Wq�tk
r�|�dd�}Yq�Xn2|r�y|�d�}Wntk
r�|�d�}YnX|�s|S|d	k�rt�|�S|d
k�rZtd�|����\}}x|D]}|j�||��q>W|S|dk�r�t|�}	t�}
ytj|	|
d
d�|
��Stjk
�r�|SXt|t��r�|S|S)NzExpected list, got %szcontent-transfer-encodingrr�surrogateescaper
�replacezraw-unicode-escapezquoted-printable�base64�)z
x-uuencodeZuuencodeZuuezx-uueT)�quiet)rLr7rrKrP�typer
�getr+rZ_has_surrogatesr�decode�	get_param�LookupError�UnicodeError�quopriZdecodestringr�join�
splitlinesr4Z
handle_defectr�uurE�Error)r;r0rZrQ�cteZbpayloadr$r9ZdefectZin_fileZout_filerrr�get_payload�sV"







zMessage.get_payloadcCspt|d�r:|dkr||_dSt|t�s.t|�}|�|j�}t|d�rT|�dd�|_n||_|dk	rl|�|�dS)NrrZrrS)�hasattrr7r�Charsetr�output_charsetrZ�set_charset)r;rQr
rrr�set_payload/s


zMessage.set_payloadcCs|dkr|�d�d|_dSt|t�s.t|�}||_d|krH|�dd�d|krf|jdd|��d�n|�d|���||��kr�|�|j�|_d|k�r|�	�}y||�Wnjt
k
�r|j}|r�y|�dd	�}Wn tk
r�|�|j
�}YnX|�|�|_|�d|�YnXdS)
Nr
zMIME-Versionz1.0zContent-Typez
text/plain)r
zContent-Transfer-EncodingrrS)�	del_paramr8rrf�
add_headerZget_output_charset�	set_paramZbody_encoder7Zget_body_encodingrPrr]rg)r;r
rcrQrrrrhCs8


zMessage.set_charsetcCs|jS)N)r8)r;rrr�get_charsetrszMessage.get_charsetcCs
t|j�S)N)rr5)r;rrr�__len__zszMessage.__len__cCs
|�|�S)N)rY)r;�namerrr�__getitem__~s	zMessage.__getitem__cCsv|j�|�}|r\|��}d}x>|jD]4\}}|��|kr$|d7}||kr$td�||���q$W|j�|j�||��dS)Nrrz/There may be at most {} {} headers in a message)r4Zheader_max_countr+r5�
ValueError�formatr,�header_store_parse)r;ro�valZ	max_countZlname�found�k�vrrr�__setitem__�szMessage.__setitem__cCsD|��}g}x,|jD]"\}}|��|kr|�||f�qW||_dS)N)r+r5r,)r;ro�
newheadersrvrwrrr�__delitem__�szMessage.__delitem__cCs|��dd�|jD�kS)NcSsg|]\}}|���qSr)r+)�.0rvrwrrr�
<listcomp>�sz(Message.__contains__.<locals>.<listcomp>)r+r5)r;rorrr�__contains__�szMessage.__contains__ccsx|jD]\}}|VqWdS)N)r5)r;Zfieldr$rrr�__iter__�szMessage.__iter__cCsdd�|jD�S)NcSsg|]\}}|�qSrr)r{rvrwrrrr|�sz Message.keys.<locals>.<listcomp>)r5)r;rrr�keys�szMessage.keyscs�fdd��jD�S)Ncsg|]\}}�j�||��qSr)r4�header_fetch_parse)r{rvrw)r;rrr|�sz"Message.values.<locals>.<listcomp>)r5)r;r)r;r�values�s
zMessage.valuescs�fdd��jD�S)Ncs"g|]\}}|�j�||�f�qSr)r4r�)r{rvrw)r;rrr|�sz!Message.items.<locals>.<listcomp>)r5)r;r)r;r�items�s
z
Message.itemscCs:|��}x,|jD]"\}}|��|kr|j�||�SqW|S)N)r+r5r4r�)r;ro�failobjrvrwrrrrY�s
zMessage.getcCs|j�||f�dS)N)r5r,)r;ror$rrr�set_raw�szMessage.set_rawcCst|j���S)N)�iterr5�copy)r;rrr�	raw_items�szMessage.raw_itemscCsLg}|��}x2|jD](\}}|��|kr|�|j�||��qW|sH|S|S)N)r+r5r,r4r�)r;ror�r�rvrwrrr�get_all�s	zMessage.get_allcKstg}xH|��D]<\}}|dkr2|�|�dd��q|�t|�dd�|��qW|dk	rb|�d|�t�|�||<dS)N�_�-r)r�r,rTr%�insert�	SEMISPACEr_)r;�_name�_valueZ_params�partsrvrwrrrrkszMessage.add_headercCs^|��}xPttt|j��|j�D].\}\}}|��|kr |j�||�|j|<Pq Wt|��dS)N)r+�zip�rangerr5r4rs�KeyError)r;r�r�r0rvrwrrr�replace_header!s$zMessage.replace_headercCsHt�}|�d|�}||kr"|��St|�d��}|�d�dkrDdS|S)Nzcontent-typer�/rz
text/plain)�objectrY�get_default_typerr+r))r;�missingr$�ctyperrr�get_content_type4s
zMessage.get_content_typecCs|��}|�d�dS)Nr�r)r��split)r;r�rrr�get_content_maintypeLszMessage.get_content_maintypecCs|��}|�d�dS)Nr�r)r�r�)r;r�rrr�get_content_subtypeUszMessage.get_content_subtypecCs|jS)N)r:)r;rrrr�^szMessage.get_default_typecCs
||_dS)N)r:)r;r�rrr�set_default_typegszMessage.set_default_typec		Cs�t�}|�||�}||kr|Sg}xdt|�D]X}y$|�dd�\}}|��}|��}Wn tk
rt|��}d}YnX|�||f�q,Wt�|�}|S)Nr'rr)	r�rYr1r�rrqr,rZ
decode_params)	r;r��headerr�r$�params�prortrrr�_get_params_preserveps 

zMessage._get_params_preserve�content-typeTcCs8t�}|�||�}||kr|S|r0dd�|D�S|SdS)NcSsg|]\}}|t|�f�qSr)r3)r{rvrwrrrr|�sz&Message.get_params.<locals>.<listcomp>)r�r�)r;r�r�r2r�r�rrr�
get_params�s
zMessage.get_paramscCsJ||kr|Sx8|�||�D](\}}|��|��kr|r>t|�S|SqW|S)N)r�r+r3)r;rr�r�r2rvrwrrrr[�szMessage.get_param�Content-TypercCst|t�s|r|||f}||kr2|��dkr2d}n
|�|�}|j||d�st|s\t|||�}q�t�|t|||�g�}nfd}x`|j||d�D]N\}	}
d}|	��|��kr�t|||�}nt|	|
|�}|s�|}q�t�||g�}q�W||�|�k�r
|r�|�	||�n||=|||<dS)Nzcontent-typez
text/plain)r�r)r�r2)
rrr+rYr[r%r�r_r�r�)r;rr$r��requoter
�languagerTr�Z	old_param�	old_valueZappend_paramrrrrl�s2

zMessage.set_paramcCs�||krdSd}xR|j||d�D]@\}}|��|��kr |sJt|||�}q t�|t|||�g�}q W||�|�kr�||=|||<dS)Nr)r�r2)r�r+r%r�r_rY)r;rr�r�Z	new_ctyper�rwrrrrj�szMessage.del_paramcCs�|�d�dkst�|��dkr,|d=d|d<||kr@|||<dS|j||d�}||=|||<x(|dd�D]\}}|�||||�qjWdS)Nr�rzcontent-typezmime-versionz1.0zMIME-Version)r�r2)r)rqr+r�rl)r;rXr�r�r�r�rwrrr�set_typeszMessage.set_typecCsDt�}|�d|d�}||kr*|�d|d�}||kr6|St�|���S)N�filenamezcontent-dispositionrozcontent-type)r�r[r�collapse_rfc2231_valuer)r;r�r�r�rrr�get_filename&szMessage.get_filenamecCs,t�}|�d|�}||kr|St�|���S)N�boundary)r�r[rr��rstrip)r;r�r�r�rrr�get_boundary6s
zMessage.get_boundarycCs t�}|�|d�}||kr$t�d��g}d}xB|D]:\}}|��dkr^|�dd|f�d}q2|�||f�q2W|s�|�dd|f�g}x�|jD]�\}	}
|	��dk�rg}x6|D].\}}
|
dkr�|�|�q�|�d||
f�q�Wt�|�}
|�|j	�
|	|
��q�|�|	|
f�q�W||_dS)	Nzcontent-typezNo Content-Type header foundFr�z"%s"Trz%s=%s)r�r�rZHeaderParseErrorr+r,r5r�r_r4rs)r;r�r�r�Z	newparamsZfoundpZpkZpvry�hrwr�rvrtrrr�set_boundaryCs2


zMessage.set_boundaryc	Cs�t�}|�d|�}||kr|St|t�rr|dp2d}y|d�d�}t||�}Wn ttfk
rp|d}YnXy|�d�Wntk
r�|SX|��S)Nr
rzus-asciirzraw-unicode-escape)	r�r[rrrr
r\r]r+)r;r�r�r
ZpcharsetrHrrr�get_content_charsetqs 
zMessage.get_content_charsetcs�fdd�|��D�S)Ncsg|]}|����qSr)r�)r{�part)r�rrr|�sz(Message.get_charsets.<locals>.<listcomp>)�walk)r;r�r)r�r�get_charsets�szMessage.get_charsetscCs*|�d�}|dkrdSt|�d��}|S)Nzcontent-dispositionr)rYrr+)r;r$�c_drrr�get_content_disposition�s

zMessage.get_content_disposition)r�)FrN)FN)NF)N)N)N)Nr�T)Nr�T)r�TNrF)r�T)r�T)N)N)N)N)3�__name__�
__module__�__qualname__r	r<r>r=rIrHrLrMrNrRrdrirhrmrnrprxrzr}r~rr�r�rYr�r�r�rkr�r�r�r�r�r�r�r�r[rlrjr�r�r�r�r�r�r�Zemail.iteratorsr�rrrrris`


Z
/


				

!
2

 


.


cs�eZdZd2dd�Zd3�fdd�	Zdd�Zd	d
�Zdd�Zd4dd�ZddddhZ	dd�Z
dd�Zdd�dd�Zdd�dd�Z
dd�Zd5dd �Zd6d!d"�Zd7d#d$�Zdd%�d&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Z�ZS)8�MIMEPartNcCs(|dkrddlm}|}t�||�dS)Nr)�default)Zemail.policyr�rr<)r;r4r�rrrr<�szMIMEPart.__init__Fcs0|dkr|jn|}|dkr |j}t�j||d�S)N)rAr4)r4Zmax_line_length�superr=)r;rBrAr4)�	__class__rrr=�szMIMEPart.as_stringcCs|j|jjdd�d�S)NT)�utf8)r4)r=r4Zclone)r;rrrr>�szMIMEPart.__str__cCs |�d�}|dkrdS|jdkS)Nzcontent-dispositionF�
attachment)rYZcontent_disposition)r;r�rrr�
is_attachment�s
zMIMEPart.is_attachmentc	cs|��rdS|���d�\}}|dkrB||kr>|�|�|fVdS|dkrNdS|dkr~x"|��D]}|�||�EdHq`WdSd|kr�|�d�|fVd}|�d�}|r�x"|��D]}|d|kr�|}Pq�W|dkr�|��}|r�|dnd}|dk	�r|�||�EdHdS)Nr��text�	multipart�related�startz
content-idr)r�r�r�r*�
iter_parts�
_find_bodyr[rd)	r;r��preferencelist�maintype�subtypeZsubpart�	candidater�Zsubpartsrrrr��s6

zMIMEPart._find_body�r��html�plaincCsDt|�}d}x2|�||�D]"\}}||kr|}|}|dkrPqW|S)Nr)rr�)r;r�Z	best_prioZbodyZprior�rrr�get_body�s
zMIMEPart.get_body)r�r�)r�r�)r�r�)r��alternativec
cs*|���d�\}}|dks"|dkr&dS|��}y|��}Wntk
rNdSX|dkr�|dkr�|�d�}|r�d}g}x*|D]"}|�d�|kr�d}q||�|�q|W|r�|EdHdS|�d	�|EdHdSg}	xT|D]L}|���d�\}}||f|j	k�r|�
��s||	k�r|	�|�q�|Vq�WdS)
Nr�r�r�r�r�Fz
content-idTr)r�r�rdr�rOr[rYr,�pop�_body_typesr�)
r;r�r�rQr�r�ruZattachmentsr��seenrrr�iter_attachmentss>






zMIMEPart.iter_attachmentsccs|��dkr|��EdHdS)Nr�)r�rd)r;rrrr�=szMIMEPart.iter_parts)�content_managercOs"|dkr|jj}|j|f|�|�S)N)r4r��get_content)r;r��args�kwrrrr�EszMIMEPart.get_contentcOs&|dkr|jj}|j|f|�|�dS)N)r4r��set_content)r;r�r�r�rrrr�JszMIMEPart.set_contentc
Cs�|��dkr6|��}||f}||kr6td�||���g}g}x>|jD]4\}}|���d�rl|�||f�qF|�||f�qFW|r�t|�|j	d�}	||	_|j
|	_
|	g|_
ng|_
||_d||d<|dk	r�|�d|�dS)Nr�zCannot convert {} to {}zcontent-)r4z
multipart/zContent-Typer�)r�r�rqrrr5r+�
startswithr,rXr4r7rl)
r;r�Zdisallowed_subtypesr�Zexisting_subtypeZkeep_headersZpart_headersror$r�rrr�_make_multipartOs,


zMIMEPart._make_multipartcCs|�dd|�dS)Nr�)r��mixed)r�)r;r�rrr�make_relatedjszMIMEPart.make_relatedcCs|�dd|�dS)Nr�)r�)r�)r;r�rrr�make_alternativemszMIMEPart.make_alternativecCs|�dd|�dS)Nr�r)r�)r;r�rrr�
make_mixedpszMIMEPart.make_mixed)�_dispcOsf|��dks|��|kr(t|d|��t|�|jd�}|j||�|rXd|krX||d<|�|�dS)Nr�Zmake_)r4zcontent-dispositionzContent-Disposition)r�r��getattrrXr4r�rR)r;Z_subtyper�r�r�r�rrr�_add_multipartsszMIMEPart._add_multipartcOs|jd|�ddi|��dS)Nr�r�Zinline)r�)r�)r;r�r�rrr�add_related}szMIMEPart.add_relatedcOs|jd|�|�dS)Nr�)r�)r�)r;r�r�rrr�add_alternative�szMIMEPart.add_alternativecOs|jd|�ddi|��dS)Nr�r�r�)r�)r�)r;r�r�rrr�add_attachment�szMIMEPart.add_attachmentcCsg|_d|_dS)N)r5r7)r;rrr�clear�szMIMEPart.clearcCsdd�|jD�|_d|_dS)NcSs&g|]\}}|���d�s||f�qS)zcontent-)r+r�)r{�nrwrrrr|�sz*MIMEPart.clear_content.<locals>.<listcomp>)r5r7)r;rrr�
clear_content�szMIMEPart.clear_content)N)FNN)r�)N)N)N)r�r�r�r<r=r>r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��
__classcell__rr)r�rr��s0

7



r�cseZdZ�fdd�Z�ZS)rcs"t�j||�d|krd|d<dS)NzMIME-Versionz1.0)r�r�)r;r�r�)r�rrr��szEmailMessage.set_content)r�r�r�r�r�rr)r�rr�s)NT)�__all__�rerar^�iorrZemailrrZemail._policybaserr	r
r8Zemail._encoded_wordsrrfr��compiler!rr%r1r3rr�rrrrr�<module>s4


"N`

Hacked By AnonymousFox1.0, Coded By AnonymousFox