a  zeN@sgdZddlZddlZddlZddlZddlmZddlmZm Z ddl m Z dZ dZ edZed ejZGd d d ZGd d d eZdZGdddeZeeejdZdeZejZdS)) GeneratorDecodedGeneratorBytesGeneratorN)deepcopy)StringIOBytesIO)_has_surrogates_ z \r\n|\r|\nz^From c@seZdZd&ddddZddZd'dd Zd d Zd d ZddZddZ ddZ ddZ ddZ ddZ e ZddZddZddZd d!Zed(d"d#Zed$d%ZdS))rNpolicycCs6|dur|durdn|j}||_||_||_||_dS)NT) mangle_from__fp _mangle_from_ maxheaderlenr )selfoutfpr rr rC/opt/bitninja-python-dojo/embedded/lib/python3.9/email/generator.py__init__$s zGenerator.__init__cCs|j|dSN)rwritersrrrrDszGenerator.writeFcCs|jdur|jn|j}|dur*|j|d}|jdurB|j|jd}|j|_||j|_d|_||j|_|j}|j}zX||_||_|r| }|sdt t }| ||j| |W||_||_n||_||_0dS)N)linesepZmax_line_lengthz From nobody )r clonerr_NL_encode _encoded_NLZ_EMPTY_encoded_EMPTYZ get_unixfromtimectimer_write)rmsgunixfromrr Zold_gen_policyZold_msg_policyZufromrrrflattenHs0   zGenerator.flattencCs|j||jd|jdSNr ) __class__rr )rfprrrrys zGenerator.clonecCstSr)rrrrr _new_bufferszGenerator._new_buffercCs|SrrrrrrrszGenerator._encodecCsT|sdSt|}|ddD]}||||jq|drP||ddS)N)NLCREsplitrr)rlineslinerrr _write_liness  zGenerator._write_linescCs|j}z2d|_||_}||W||_|j}|`n||_|j}|`0|rt|}|ddurt|d|d<n|d|d|d|dt|dd}|dur||n|||j | dS)Ncontent-transfer-encodingrContent-Transfer-Encoding content-type_write_headers) r _munge_cter, _dispatchrgetZreplace_headergetattrr7rgetvalue)rr%ZoldfpZsfpZ munge_ctemethrrrr$s,    zGenerator._writecCst|}|}t||fdd}t|d|d}|durh|dd}t|d|d}|durh|j}||dS)N-r Z_handle_)get_content_maintypeget_content_subtype UNDERSCOREjoinreplacer; _writeBody)rr%mainsubZspecificr=Zgenericrrrr9s zGenerator._dispatchcCs6|D]\}}||j||q||jdSr) raw_itemsrr Zfoldrrr%hvrrrr7szGenerator._write_headerscCs|}|durdSt|ts.tdt|t|jr~|d}|dur~t|}|d=| |||}|d|df|_ |j rt d|}||dS)Nzstring payload expected: %scharsetr3r5>From ) get_payload isinstancestr TypeErrortyper_payloadZ get_paramrZ set_payloadr8rfcrerFr2)rr%payloadrKrrr _handle_texts$     zGenerator._handle_textc Csg}|}|durg}n(t|tr2||dSt|tsB|g}|D]6}|}||}|j|d|jd| | qF| }|s|j |}||}|||jdur|jrtd|j} n|j} || ||j|d||j|r|j|d|D],} ||jd||j|j| q||jd|d|j|jdur|jrtd|j} n|j} || dS)NFr&rrLz--r)rMrNrOrlistr,rr'rappendr<Z get_boundaryr rB_make_boundaryZ set_boundarypreamblerrSrFr2rpopepilogue) rr%ZmsgtextsZsubpartspartrgboundaryZalltextrZZ body_partr\rrr_handle_multipartsJ           zGenerator._handle_multipartcCs6|j}|jdd|_z||W||_n||_0dS)Nrr)r rr`)rr%prrr_handle_multipart_signed<s  z"Generator._handle_multipart_signedcCsg}|D]t}|}||}|j|d|jd|}||j}|rv|d|jkrv| |j |ddq | |q |j |j |dS)NFrVr-) rMr,rr'rr<r/r r!rXrBrr)rr%Zblocksr]rr^textr0rrr_handle_message_delivery_statusGs    z)Generator._handle_message_delivery_statuscCs^|}||}|j}t|trD|j|dd|jd|}n | |}|j |dS)NrFrV) r,rrRrNrWr'rMrr<rrr)rr%rr^rTrrr_handle_message\s    zGenerator._handle_messagecCsvttj}dt|d}|dur(|S|}d}|dt|dtj}| |sXqr|dt |}|d7}q0|S)Nz===============z==rz^--z(--)?$.r6) random randrangesysmaxsize_fmt _compile_rereescape MULTILINEsearchrO)clsrctokenr_bZcounterZcrerrrrYus   zGenerator._make_boundarycCs t||Sr)rmcompilerqrflagsrrrrlszGenerator._compile_re)NN)FN)N)__name__ __module__ __qualname__rrr'rr,rr2r$r9r7rUrDr`rbrdre classmethodrYrlrrrrrs,   1' :  rcsLeZdZddZddZddZddZfd d ZeZe d d Z Z S) rcCs|j|dddS)Nasciisurrogateescape)rrencoderrrrrszBytesGenerator.writecCstSr)rr+rrrr,szBytesGenerator._new_buffercCs |dSNr{)r}rrrrrszBytesGenerator._encodecCs8|D]\}}|j|j||q||jdSr)rGrrr Z fold_binaryrrHrrrr7szBytesGenerator._write_headerscs\|jdurdSt|jrH|jjdksH|jr:td|j|_||jntt | |dS)NZ7bitrL) rRrr Zcte_typerrSrFr2superrrU)rr%r)rrrUs zBytesGenerator._handle_textcCst|d|Sr~)rmrtr}rurrrrlszBytesGenerator._compile_re) rwrxryrr,rr7rUrDrzrl __classcell__rrrrrs  rzD[Non-text (%(type)s) part of message omitted, filename %(filename)s]c@s$eZdZdddddZddZdS)rNr cCs.tj|||||d|dur$t|_n||_dSr()rr_FMTrk)rrr rfmtr rrrrs  zDecodedGenerator.__init__c Cs|D]v}|}|dkr2t|jdd|dq|dkrs(   t3;