ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     ÿØÿà JFIF      ÿÛ „ 	 ( %!1!%)+//.383,7(-.+



-%%-////---/-.+/--+------/------/--0+--/-/-----.-----ÿÀ  ¥2" ÿÄ               ÿÄ J  	     ! 1AQ"aq2‘#BR‚¡ÁÑ3br’¢±Âð$CSƒ²á4c“%DsÓñÿÄ              ÿÄ *        !1AQa‘"2q3±ð#b¡ÿÚ   ? ¼QxJQaÍuò¸Zö Úü8,ÐÚú
"SSn<rçù–´âE—^ªBÖ9À\†¸ÔÁT­ÃÛ5
ëd´³Í#Ý;Þ38œî ¶H£M:wÎ3…³…âpÔF&‚FK¸9„â4àGEõªfÿ ‘ñ(ßw­pŽF|È¥ù®häðÍÑ¶¹‘[ÒinÙW¶ùñY˜Q{›K"išÒ[Ú8žë\F¹@-?v"ÔU”,ìöžkÿ {I‡£šÍ?e
ríV
..............................................................................................................................................................................
.............................................................................                                                  
                                                                                                                                                                                     3
iS                 @   s   d ddgZ ddlZddlZddlZddlZddlmZ ddlmZm	Z	 ddl
mZ ddlmZ d	Zd
ZejdZejdejZejdZejdZG dd  d ZG dd deZdZG dd deZeeejd Zde ZejZdS )	GeneratorDecodedGeneratorBytesGenerator    N)deepcopy)StringIOBytesIO)_has_surrogates)HeaderWriteError_
z
\r\n|\r|\nz^From z\r\n[^ \t]|\r[^ \n\t]|\n[^ \t]s   \r\n[^ \t]|\r[^ \n\t]|\n[^ \t]c               @   s   e Zd Zd&ddddZdd Zd'dd	Zd
d Zdd Zdd Zdd Z	dd Z
dd Zdd Zdd ZeZdd Zdd Zdd Zd d! Zed(d"d#Zed$d% ZdS ))r   N)policyc            C   s6   |d kr|d krdn|j }|| _|| _|| _|| _d S )NT)mangle_from__fp_mangle_from_maxheaderlenr   )selfoutfpr   r   r    r   '/usr/lib64/python3.6/email/generator.py__init__'   s    zGenerator.__init__c             C   s   | j j| d S )N)r   write)r   sr   r   r   r   G   s    zGenerator.writeFc             C   s   | j d kr|j n| j }|d k	r*|j|d}| jd k	rB|j| jd}|j| _| j| j| _d| _| j| j| _| j }|j }zL|| _ ||_ |r|j	 }|sdt
jt
j
  }| j|| j  | j| W d || _ ||_ X d S )N)linesep)max_line_length zFrom nobody )r   cloner   r   _NL_encode_encoded_NLZ_EMPTY_encoded_EMPTYZget_unixfromtimeZctimer   _write)r   msgunixfromr   r   Zold_gen_policyZold_msg_policyZufromr   r   r   flattenK   s,    
zGenerator.flattenc             C   s   | j || jd | jdS )N)r   )	__class__r   r   )r   fpr   r   r   r   |   s    zGenerator.clonec             C   s   t  S )N)r   )r   r   r   r   _new_buffer   s    zGenerator._new_bufferc             C   s   |S )Nr   )r   r   r   r   r   r      s    zGenerator._encodec             C   sX   |sd S t j|}x*|d d D ]}| j| | j| j q W |d rT| j|d  d S )N   r)   r)   )NLCREsplitr   r   )r   linesliner   r   r   _write_lines   s    

zGenerator._write_linesc             C   s   | j }z"d | _| j  | _ }| j| W d || _ | j}| `X |rht|}|jd|d  |jd|d  t|dd }|d kr| j| n||  | j j|j	  d S )Nzcontent-transfer-encodingr   zcontent-typer(   _write_headers)
r   
_munge_cter'   	_dispatchr   Zreplace_headergetattrr/   r   getvalue)r   r"   ZoldfpZsfpZ	munge_ctemethr   r   r   r!      s"    zGenerator._writec             C   st   |j  }|j }tj||fjdd}t| d| d }|d krh|jdd}t| d| d }|d krh| j}|| d S )N-r
   Z_handle_)get_content_maintypeget_content_subtype
UNDERSCOREjoinreplacer2   
_writeBody)r   r"   mainsubZspecificr4   Zgenericr   r   r   r1      s    zGenerator._dispatchc             C   s   x|j  D ]\}}| jj||}| jjr| jj}|j| jjsRtd|d||}|j|rr|d t|  }tj	|rtd|| j
| q
W | j
| j d S )Nz folded header does not end with z: z folded header contains newline: )	raw_itemsr   Zfoldverify_generated_headersr   endswithr	   lenNEWLINE_WITHOUT_FWSPsearchr   r   )r   r"   hvfoldedr   folded_no_linesepr   r   r   r/      s    

zGenerator._write_headersc             C   s   |j  }|d krd S t|ts.tdt| t|jr~|jd}|d k	r~t|}|d= |j	|| |j  }|d |d f| _
| jrtjd|}| j| d S )Nzstring payload expected: %scharsetzcontent-transfer-encodingzcontent-typez>From )get_payload
isinstancestr	TypeErrortyper   _payloadZ	get_paramr   Zset_payloadr0   r   fcrer=   r.   )r   r"   payloadrH   r   r   r   _handle_text   s"    


zGenerator._handle_textc             C   s  g }|j  }|d krg }n(t|tr2| j| d S t|tsB|g}x>|D ]6}| j }| j|}|j|d| jd |j	|j
  qHW |j }|s| jj|}| j|}|j| |jd k	r| jrtjd|j}	n|j}	| j|	 | j| j | jd| | j  |r| jj|jd x4|D ],}
| j| jd | | j  | jj|
 qW | j| jd | d | j  |jd k	r| jrtjd|j}n|j}| j| d S )NF)r#   r   z>From z--r   )rI   rJ   rK   r   listr'   r   r$   r   appendr3   Zget_boundaryr   r9   _make_boundaryZset_boundarypreambler   rO   r=   r.   r   popepilogue)r   r"   ZmsgtextsZsubpartspartr   gboundaryZalltextrU   Z	body_partrW   r   r   r   _handle_multipart  sJ    









zGenerator._handle_multipartc             C   s0   | j }|jdd| _ z| j| W d || _ X d S )Nr   )r   )r   r   r[   )r   r"   pr   r   r   _handle_multipart_signedG  s
    z"Generator._handle_multipart_signedc             C   s   g }x|j  D ]t}| j }| j|}|j|d| jd |j }|j| j}|rx|d | jkrx|j	| jj
|d d  q|j	| qW | jj| jj
| d S )NF)r#   r   r(   r)   r)   )rI   r'   r   r$   r   r3   r+   r   r   rS   r9   r   r   )r   r"   ZblocksrX   r   rY   textr,   r   r   r   _handle_message_delivery_statusR  s    
z)Generator._handle_message_delivery_statusc             C   s^   | j  }| j|}|j}t|trD|j|jdd| jd |j }n
| j	|}| j
j| d S )Nr   F)r#   r   )r'   r   rN   rJ   rR   r$   rI   r   r3   r   r   r   )r   r"   r   rY   rP   r   r   r   _handle_messageg  s    




zGenerator._handle_messagec             C   sz   t jtj}d	t|  d }|d kr(|S |}d}xD| jdtj| d tj}|j	|sZP |d t
| }|d7 }q2W |S )
N=   z==r   z^--z(--)?$.r(   z===============)randomZ	randrangesysmaxsize_fmt_compile_rereescape	MULTILINErC   rK   )clsr^   tokenrZ   bZcounterZcrer   r   r   rT     s    
zGenerator._make_boundaryc             C   s   t j||S )N)ri   compile)rl   r   flagsr   r   r   rh     s    zGenerator._compile_re)NN)FN)N)__name__
__module____qualname__r   r   r$   r   r'   r   r.   r!   r1   r/   rQ   r;   r[   r]   r_   r`   classmethodrT   rh   r   r   r   r   r      s(   

1#:c                   sL   e Zd Zdd Zdd Zdd Zdd Z fd	d
ZeZe	dd Z
  ZS )r   c             C   s   | j j|jdd d S )Nasciisurrogateescape)r   r   encode)r   r   r   r   r   r     s    zBytesGenerator.writec             C   s   t  S )N)r   )r   r   r   r   r'     s    zBytesGenerator._new_bufferc             C   s
   |j dS )Nru   )rw   )r   r   r   r   r   r     s    zBytesGenerator._encodec             C   s   x|j  D ]\}}| jj||}| jjr| jjj }|j|sRtd|d||}|j|rr|d t|  }t	j
|rtd|| jj| q
W | j| j d S )Nz folded header does not end with z: z folded header contains newline: )r>   r   Zfold_binaryr?   r   rw   r@   r	   rA   NEWLINE_WITHOUT_FWSP_BYTESrC   r   r   r   )r   r"   rD   rE   rF   r   rG   r   r   r   r/     s    


zBytesGenerator._write_headersc                s^   |j d krd S t|j rJ| jjdk rJ| jr<tjd|j |_ | j|j  ntt	| j
| d S )NZ7bitz>From )rN   r   r   Zcte_typer   rO   r=   r.   superr   rQ   )r   r"   )r%   r   r   rQ     s    
zBytesGenerator._handle_textc             C   s   t j|jd|S )Nru   )ri   ro   rw   )rl   r   rp   r   r   r   rh     s    zBytesGenerator._compile_re)rq   rr   rs   r   r'   r   r/   rQ   r;   rt   rh   __classcell__r   r   )r%   r   r     s   zD[Non-text (%(type)s) part of message omitted, filename %(filename)s]c               @   s$   e Zd ZdddddZdd ZdS )r   N)r   c            C   s.   t j| ||||d |d kr$t| _n|| _d S )N)r   )r   r   _FMTrg   )r   r   r   r   Zfmtr   r   r   r   r     s
    zDecodedGenerator.__init__c             C   s   x|j  D ]v}|j }|dkr4t|jdd| d q
|dkr>q
t| j|j |j |j |jd|jdd|jd	d
d | d q
W d S )Nr^   F)decode)fileZ	multipartz[no filename]zContent-Descriptionz[no description]zContent-Transfer-Encodingz[no encoding])rM   maintypesubtypefilenameZdescriptionencoding)	walkr6   printrI   rg   Zget_content_typer7   get_filenameget)r   r"   rX   r~   r   r   r   r1     s     
zDecodedGenerator._dispatch)NNN)rq   rr   rs   r   r1   r   r   r   r   r     s   r(   z%%0%dd) __all__ri   re   r    rd   copyr   ior   r   Zemail.utilsr   Zemail.errorsr	   r8   NLro   r*   rk   rO   rB   rx   r   r   r{   r   rA   reprrf   Z_widthrg   rT   r   r   r   r   <module>   s.   



  |?;