o !Qdn4@sR gdZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z ddl m Z ddl mZmZmZddlmZdZd Zd Zd Zd Zed Zed ZddZddZd4ddZddZddZd5ddZ d6ddZ!d7ddZ"d d!Z#d"d#Z$d$d%Z%d&d'Z&d7d(d)Z'ed*ej(Z)d+d,Z* - .d8d/d0Z+d9d2d3Z,dS):)collapse_rfc2231_value decode_paramsdecode_rfc2231encode_rfc2231 formataddr formatdateformat_datetime getaddresses make_msgid mktime_tz parseaddr parsedate parsedate_tzparsedate_to_datetimeunquoteN)quote) AddressList)r )r r _parsedate_tz)Charsetz, z 'z[][\\()<>@,:;".]z[\\"]cCs& z|WdStyYdSw)NFT)encodeUnicodeEncodeError)sr2/opt/alt/python310/lib64/python3.10/email/utils.py_has_surrogates3s rcCs|dd}|ddS)Nutf-8surrogateescapereplace)rdecode)stringZoriginal_bytesrrr _sanitize@s  r"rcCs |\}}|d|rHz|dWnty0t|tr#t|}||}d||fYSwd}t|r:d}t d|}d||||fS|S)Nasciiz%s <%s>r"z\\\g<0>z %s%s%s <%s>) rr isinstancestrrZ header_encode specialsresearch escapesresub)ZpaircharsetnameZaddressZ encoded_nameZquotesrrrrLs$      rcCs$ tdd|D}t|}|jS)Ncss|]}t|VqdS)Nr&).0vrrr pszgetaddresses..) COMMASPACEjoin _AddressList addresslist)Z fieldvaluesallarrrrnsrc CsHdgd|d|dgd|dd|d|d|d |d |fS) Nz"%s, %02d %s %04d %02d:%02d:%02d %s)ZMonZTueZWedZThuZFriZSatZSun) ZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDecrr) timetuplezonerrr_format_timetuple_and_zoneus r?FcCsT |dur t}|s |rtj|tjj}ntj|}|r%|}d}t||S)NF)timedatetimeZ fromtimestamptimezoneutcZutcfromtimestamp astimezoner)timeval localtimeusegmtdtrrrr~s  rcCsX |}|r|jdus|jtjjkrtdd}n |jdur"d}n|d}t||S)Nz%usegmt option requires a UTC datetimeZGMTz-0000z%z)r=tzinforArBrC ValueErrorstrftimer?)rHrGnowr>rrrrs   rcCs` ttd}t}td}|durd}nd|}|dur%t}d|||||f}|S)Nd@r.z<%d.%d.%d%s@%s>)intr@osgetpidrandomZ getrandbitssocketZgetfqdn)ZidstringZdomainrEpidZrandintZmsgidrrrr s  r cCsjt|}|durtdt||^}}|dur"tj|ddStj|dddttj|diS)Nz!Invalid date value or format "%s"r7rIseconds)rrJr&rArB timedelta)dataZparsed_date_tzZdtupletzrrrrs rcCs t|j}|s dS|dS)N)rrr)r3r4)ZaddrZaddrsrrrr s  r cCsb t|dkr/|dr|dr|ddddddS|dr/|dr/|ddS|S) Nr9r$z\\\z\"<>)len startswithendswithrr-rrrrs  rcCs( |td}t|dkrdd|fS|S)Nr8)splitTICKr_)rpartsrrrrs    rcCsF tjj|d|p dd}|dur|dur|S|durd}d|||fS)Nrr#)Zsafeencodingz%s'%s'%s)urllibparser)rr+languagerrrrsrz&^(?P\w+)\*((?P[0-9]+)\*?)?$c Cs> |dg}i}|ddD]<\}}|d}t|}t|}|r?|dd\}}|dur2t|}||g|||fq||dt|fq|r| D]K\}}g}d} | |D]\}} }|rpt j j| dd } d } || q_tt |}| rt|\} } }||| | d|ffqQ||d|fqQ|S) Nrr9*r,numz"%s"Fzlatin-1)reT)rarrfc2231_continuationmatchgrouprP setdefaultappendritemssortrfrg EMPTYSTRINGr2r) paramsZ new_paramsZrfc2231_paramsr,valueZencodedZmorjZ continuationsZextendedrr+rhrrrrs:    rrus-asciicCsht|tr t|dkrt|S|\}}}|dur|}t|d}zt|||WSty3t|YSw)Nr:zraw-unicode-escape)r%tupler_rbytesr& LookupError)rterrorsZfallback_charsetr+rhtextZrawbytesrrrr4s    rr[c Cs |durtjtjjS|jdur|S|dd|f}t|}t |}ztj |j d}t||j }Wn?t y||tjt|dd}tjoY|jdk}|r_tjntj }|tj |dkrut|tj|}nt|}Ynw|j|dS)Nr[rVr7r)rI)rArLrBrCrDrIr=r@mktimerFrX tm_gmtofftm_zoneAttributeErrorgmtimedaylighttm_isdstaltzonetznamer) rHZisdstZtmrWZlocaltmZdeltarZZdstZgmtoffrrrrFNs*       rF)r)NFF)F)NN)rru)Nr[)-__all__rQrer@rSrTrAZ urllib.parserfZemail._parseaddrrrr3r r r rZ email.charsetrr1rrZ UEMPTYSTRINGZCRLFrccompiler'r)rr"rrr?rrr rr rrrASCIIrkrrrFrrrrsT       "    0