fB gdZddlmZddlZddlZddlmZddlmZdZ dZ dZ d Z d Z d Zd Zid e e dfde e dfde e dfde e dfde e dfde e dfde e dfde e dfde e dfde e dfde e dfde e dfd dde e dfde e dfde ddfde ddfe ddfe e dfe e dfd Zid!d d"d d#dd$dd%dd&dd'dd(dd)dd*dd+dd,dd-dd.dd/dd0dd1ddddd2dd3d d4Zd5d6dd7Zdd8Zd9Zd:Zd;ZGd<d=ZdS)>)Charset add_alias add_charset add_codec)partialN)errors)encode_7or8bitus-asciiz unknown-8bitz iso-8859-1z iso-8859-2z iso-8859-3z iso-8859-4z iso-8859-9z iso-8859-10z iso-8859-13z iso-8859-14z iso-8859-15z iso-8859-16z windows-1252viscii)NNNbig5gb2312zeuc-jp iso-2022-jp shift_jisutf-8)rzkoi8-rrlatin_1zlatin-1latin_2zlatin-2latin_3zlatin-3latin_4zlatin-4latin_5zlatin-5latin_6zlatin-6latin_7zlatin-7latin_8zlatin-8latin_9zks_c_5601-1987zeuc-kr)zlatin-9latin_10zlatin-10cp949euc_jpeuc_krascii eucgb2312_cnbig5_tw)rrrcV |tkrtd|||ft|<dS)Nz!SHORTEST not allowed for body_enc)SHORTEST ValueErrorCHARSETS)charset header_encbody_encoutput_charsets 4/opt/alt/python311/lib64/python3.11/email/charset.pyrrjs:,8<===#X~>HWc |t|<dSN)ALIASES)alias canonicals r.rrs GENNNr/c |t|<dSr1) CODEC_MAP)r* codecnames r.rrs #Igr/cn|tkr|ddS||S)Nr#surrogateescape) UNKNOWN8BITencode)stringcodecs r._encoder>s4 }}W&7888}}U###r/cJeZdZ efdZdZdZdZdZdZ dZ dZ d Z d S) rc t|tr|dnt|d}n"#t$rt j|wxYw|}t|||_ t|j ttdf\}}}|s|j }||_ ||_t|||_t |j |j |_t |j|j|_dS)Nr#) isinstancestrr; UnicodeErrorr CharsetErrorlowerr2get input_charsetr)r'BASE64header_encoding body_encodingr-r6 input_codec output_codec)selfrGhencbencconvs r.__init__zCharset.__init__s@  5--- <$$W---- #M7 ; ;  5 5 5%m44 4 5%++-- $[[ FF$<<(:)164(@BBdD &%D#!%kk$55%==);)-);==%MM$*=*.*=??s ;>Ac4|jSr1)rGrErMs r.__repr__zCharset.__repr__s!'')))r/cft|t|kSr1)rBrE)rMothers r.__eq__zCharset.__eq__s%4yyCJJ,,....r/cZ |jtkrdS|jtkrdStS)Nzquoted-printablebase64)rJQPrHr rSs r.get_body_encodingzCharset.get_body_encodings6    # #%%  6 ) )8! !r/c |jp|jSr1)r-rGrSs r.get_output_charsetzCharset.get_output_charset s "8d&88r/c |jpd}t||}||}||S|||S)Nr)rLr> _get_encoder header_encode)rMr<r= header_bytesencoder_modules r.r`zCharset.header_encodesY !/Zvu-- **<88  !M++L%@@@r/c~ |jpd}t||}||}t|j|}|}t |tz}g} g} t||z } |D]} | | t | } | t| |}|| kr| | s| s| dnN| rdnd}t | }t||}| ||| g} t||z } t | }t||}| ||| S)Nr)r* r)rLr>r_rr`r]lenRFC2047_CHROME_LENnextappend EMPTYSTRINGjoin header_lengthpop)rMr< maxlengthsr=rarbencoderr*extralines current_linemaxlen character this_linelength separator joined_lines r.header_encode_lineszCharset.header_encode_lines%s "!/Zvu-- **<88.6FFF))++G 11 j!!E) 2 2I    * * *#((66I#11')W2M2MNNF  """8\8LL&&&&(-!52I"-"2"2<"@"@K#*;#>#>LLL!6!6777 ){ j))E1!&&|44 {E22  WW\**+++ r/cN|jtkr tjS|jtkr tjS|jt kr\tj|}tj|}||kr tjStjSdSr1)rIrHemail base64mimerZ quoprimimer'rk)rMralen64lenqps r.r_zCharset._get_encodercs  6 ) )# #  !R ' '# #  !X - -$22<@@E$22<@@Eu}}''''4r/c. |s|S|jturNt|tr||j}t j|S|jturct|tr||j}| d}t j |St|tr-||j d}|S)Nlatin1r#) rJrHrArBr;r-rzr{ body_encoderZdecoder|)rMr<s r.rzCharset.body_encoders  M   ' '&#&& <t':;;#//77 7  2 % %&#&& <t':;;]]8,,F#//77 7&#&& Lt':;;BB7KKMr/N) __name__ __module__ __qualname__DEFAULT_CHARSETrQrTrWr[r]r`rxr_rr/r.rrs*V&5????B***///"""*999AAA&<<<|   r/r)__all__ functoolsremail.base64mimerzemail.quoprimimeremail.encodersr rZrHr'rfrr:rir)r2r6rrrr>rrr/r.rs    ))))))   Br- Br- Br-   Br-  Br- Br- Br- Br- Br-  Br-! "Br-# $ Br-% &-' ( Fv-) * Fv-+ , Ft 6- .Ft 6/ 0t-v-vw/5   >  |  | | |   |   |  | | | | } } } } }  }! "}# $1   <"    ????8###$$$mmmmmmmmmmr/