DMA32 ˆÂÁ ƒh¹À¿¾0 #ˆl–äY>” je¶…8 Cq§nµ1hß ƒy÷ÁÀ¿#a WpWjYHã@sœgd¢ZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z ddl m Z ddl mZmZmZddlmZdZd Zd Zd Zd Ze d ¡Ze d ¡ZdZdadd„Zdd„Zdd„Zdd„Z dEdd„Z!dd„Z"dd„Z#dZ$ddœd d!„Z%d"d#„Z&d$d%„Z'd&d'„Z(d(d)„Z)dFd+d,„Z*dGd-d.„Z+dHd/d0„Z,d1d2„Z-ddœd3d4„Z.d5d6„Z/d7d8„Z0dId9d:„Z1e d;ej2¡Z3d@,:;".]z[\\"]z/etc/python/email.cfgcCstdurtƒatS©N)Ú_cached_strict_addr_parsingÚ_use_strict_email_parsing_impl©rrú#/usr/lib64/python3.9/email/utils.pyÚ_use_strict_email_parsing7srcCs˜ttj d¡ƒ}|rdSz ttƒ}Wnty6YnV0|�@ddl}|jddd�}|  |¡|j dddd�}Wdƒn1s‚0Y|r”dSdS) NZ(PYTHON_EMAIL_DISABLE_STRICT_ADDR_PARSINGFr)ú#)Z interpolationZcomment_prefixesZemail_addr_parsing)ÚfallbackT) ÚboolÚosÚenvironÚgetÚopenÚ_EMAIL_CONFIG_FILEÚFileNotFoundErrorÚ configparserÚ ConfigParserZ read_fileZ getboolean)ÚdisabledÚfiler&Zconfigrrrr?s$  þ .rcCs(z| ¡WdSty"YdS0dS)NFT)ÚencodeÚUnicodeEncodeError)ÚsrrrÚ_has_surrogates\s  r-cCs| dd¡}| dd¡S)Núutf-8ÚsurrogateescapeÚreplace)r*Údecode)ÚstringZoriginal_bytesrrrÚ _sanitizeis r3r.cCs’|\}}| d¡|rŽz| d¡Wn:ty^t|tƒrDt|ƒ}| |¡}d||fYS0d}t |¡rrd}t  d|¡}d||||fS|S)NÚasciiz%s <%s>rú"z\\\g<0>z %s%s%s <%s>) r*r+Ú isinstanceÚstrrZ header_encodeÚ specialsreÚsearchÚ escapesreÚsub)ZpairÚcharsetÚnameÚaddressZ encoded_nameZquotesrrrrus       rccs\d}d}t|ƒD]8\}}|r0|d|fVd}q|dkr>d}q||fVq|rX|dfVdS)NrFú\T)Ú enumerate)ÚaddrÚposÚescapeÚchrrrÚ_iter_escaped_chars–s rEcCsŽd|vr |Sd}d}g}t|ƒD]D\}}|dkr |dur>|}q ||krX| |||…¡|d}d}q |t|ƒkr„| ||d…¡d |¡S)Nr5rér)rEÚappendÚlenÚjoin)rAÚstartZopen_posÚresultrBrDrrrÚ_strip_quoted_realnames¥s  rLT)ÚstrictcCs¤|dkrtƒ}|s4t dd„|Dƒ¡}t|ƒ}|jSdd„|Dƒ}t|ƒ}t |¡}t|ƒ}t|jƒ}d}|D]}t|ƒ}|d| d¡7}qnt |ƒ|kr dgS|S) Ncss|]}t|ƒVqdSr©r7©Ú.0ÚvrrrÚ Øózgetaddresses..cSsg|] }t|ƒ‘qSrrNrOrrrÚ ÜrSz getaddresses..rrFú,©rr) rÚ COMMASPACErIÚ _AddressListÚ addresslistÚ_pre_parse_validationÚ_post_parse_validationrLÚcountrH)Z fieldvaluesrMÚallÚarArKÚnrQrrrrÀs$     rcCsVt|ƒ}d}t|ƒD]8\}}|dkr.|d7}q|dkr|d8}|dkrdSq|dkS)Nrú(rFú)F)rLrE)rAZopensrBrDrrrÚ_check_parenthesisñs rbcCs(g}|D]}t|ƒsd}| |¡q|S)Nz('', ''))rbrG)Ze