a 3êdgxÖã+@s”dZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z m Z m Z ddl mZzddlZdZWney’dZYn0gd¢ZdZdZd Zd Zd Zd Zd dddddd d d dd ddd d d d d d ddd dd dddd dd d d d ddd dd ddd ddœ*Ze d¡Ze d¡Ze d¡Ze dej¡Ze d¡Z e d¡Z!e d¡Z"e dej¡Z#dZ$dZ%Gdd„dƒZ&erœGdd„de&ƒZ'e (d¡Gdd „d e&ƒZ)Gd!d"„d"ƒZ*d# +d$¡Z,d%d&„e-e,d'd…ƒDƒZ.d(d)„Z/d*d+„Z0d,d-„Z1d.d/„Z2e3d0krddl4Z4ddl5Z5ze4 4ej6d'd…d1¡\Z7Z8Wn0e4j9yfZ:zd2\Z7Z8WYdZ:[:n dZ:[:00dZ;e7D]8\Ze5 ?¡Z@e5 5d6e@e>pÔd7f¡ZAd8e@d9d:œZBd;e@eAffdd?d@ddeBffdAdBdCdDdEdFdGdHdIfZCdJdKdLdMd?dddeBffdHdNfZDdOdP„ZEze;rXe)e;ƒZFne&e>ƒZFeFjGdQkrxeCd'd…ZCeF HdReFjI¡eF HdSeFjJf¡eCD]\ZKZ8eEeKe8ƒqžeEdTdUƒD].*))?s.*FLAGS \((?P[^\)]*)\)sÕ.*INTERNALDATE "(?P[ 0123][0-9])-(?P[A-Z][a-z][a-z])-(?P[0-9][0-9][0-9][0-9]) (?P[0-9][0-9]):(?P[0-9][0-9]):(?P[0-9][0-9]) (?P[-+])(?P[0-9][0-9])(?P[0-9][0-9])"s.*{(?P\d+)}$s \r\n|\r|\ns%\[(?P[A-Z-]+)( (?P.*))?\]s$\* (?P[A-Z-]+)( (?P.*))?s3\* (?P\d+) (?P[A-Z-]+)( (?P.*))?c@s–eZdZGdd„deƒZGdd„deƒZGdd„deƒZdedfd d „Zd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zdd„Zdedfdd„Zdd„Zdd„Zdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Zd)d*„Zd+d,„Zd-d.„Zd/d0„Zd1d2„Zd3d4„Zd5d6„Zd7d8„Zd9d:„Z d;d<„Z!d=d>„Z"d?d@„Z#dAdB„Z$dCdD„Z%dEdF„Z&dGdH„Z'ddKdL„Z(dMdN„Z)dOdP„Z*dQdR„Z+dSdT„Z,dždUdV„Z-dWdX„Z.dYdZ„Z/d[d\„Z0d]d^„Z1d_d`„Z2dadb„Z3dcdd„Z4dŸdgdh„Z5didj„Z6dkdl„Z7dmdn„Z8dodp„Z9d dqdr„Z:dsdt„Z;dudv„Zd{d|„Z?d}d~„Z@dd€„ZAdd‚„ZBdƒd„„ZCd…d†„ZDd‡dˆ„ZEd‰dŠ„ZFd‹dŒ„ZGddŽ„ZHd¡dd„ZId‘d’„ZJd“d”„ZKd•d–„ZLd—d˜„ZMd™dš„ZNd›dœ„ZOdS)¢rc@s eZdZdS)z IMAP4.errorN©Ú__name__Ú __module__Ú __qualname__©r>r>ú#/usr/local/lib/python3.9/imaplib.pyÚerror¸ór@c@s eZdZdS)z IMAP4.abortNr:r>r>r>r?Úabort¹rArBc@s eZdZdS)zIMAP4.readonlyNr:r>r>r>r?ÚreadonlyºrArCÚNc Cs’t|_d|_d|_i|_i|_d|_d|_d|_d|_ |  ¡|  |||¡z |  ¡Wn4t yŒz | ¡Wnty„Yn0‚Yn0dS)NrrDFr)ÚDebugÚdebugÚstateÚliteralÚtagged_commandsÚuntagged_responsesÚcontinuation_responseÚ is_readonlyÚtagnumÚ_tls_establishedÚ _mode_asciiÚopenÚ_connectÚ ExceptionÚshutdownÚOSError©ÚselfÚhostÚportÚtimeoutr>r>r?Ú__init__¼s&    zIMAP4.__init__cCs0d|_d|_t ttj¡|_t ttj¡|_dS)NFÚascii) Ú utf8_enabledÚ _encodingÚreÚcompileÚ_LiteralÚASCIIÚLiteralÚ_Untagged_statusÚUntagged_status©rVr>r>r?rOÕszIMAP4._mode_asciicCs(d|_d|_t t¡|_t t¡|_dS)NTúutf-8)r\r]r^r_r`rbrcrdrer>r>r?Ú _mode_utf8Üs zIMAP4._mode_utf8cCsœtt dd¡ƒ|_t d|jdtj¡|_|  ¡|_ d|j vrHd|_ nd|j vrZd|_ n |  |j ¡‚| ¡tD]}||jvr‚qr||_dS|  d ¡‚dS) Niiÿÿs(?Ps"\d+) (?P[A-Z]+) (?P.*)ZPREAUTHrÚOKrzserver not IMAP4 compliant)r ÚrandomÚrandintÚtagprer^r_raÚtagreÚ __version__Ú _get_responseZwelcomerJrGr@Ú_get_capabilitiesÚAllowedVersionsÚ capabilitiesÚPROTOCOL_VERSION)rVÚversionr>r>r?rQãs*ÿþþ     zIMAP4._connectcCs&|tvrt|| ¡ƒStd|ƒ‚dS)NzUnknown IMAP4 command: '%s')ÚCommandsÚgetattrÚlowerÚAttributeError)rVÚattrr>r>r?Ú __getattr__ szIMAP4.__getattr__cCs|S©Nr>rer>r>r?Ú __enter__szIMAP4.__enter__cGs2|jdkrdSz | ¡Wnty,Yn0dS©Nr)rGÚlogoutrT)rVÚargsr>r>r?Ú__exit__s    zIMAP4.__exit__cCs`|dur|stdƒ‚|jsdn|j}t d||j|j¡||jf}|durVt ||¡St |¡S)Nz0Non-blocking socket (timeout=0) is not supportedz imaplib.open)Ú ValueErrorrWÚsysÚauditrXÚsocketÚcreate_connection)rVrYrWÚaddressr>r>r?Ú_create_socket#s   zIMAP4._create_socketcCs*||_||_| |¡|_|j d¡|_dS)NÚrb)rWrXr†ÚsockÚmakefileÚfilerUr>r>r?rP0s z IMAP4.opencCs |j |¡Srz)rŠÚread©rVÚsizer>r>r?r‹<sz IMAP4.readcCs.|j td¡}t|ƒtkr*| dt¡‚|S)Nézgot more than %d bytes)rŠÚreadlineÚ_MAXLINEÚlenr@©rVÚliner>r>r?rAs zIMAP4.readlinecCst d||¡|j |¡dS)Nz imaplib.send)rr‚rˆÚsendall©rVÚdatar>r>r?ÚsendIsz IMAP4.sendc Cs€|j ¡zdz|j tj¡WnBty`}z*|jtjkrLt |ddƒdkrL‚WYd}~n d}~00W|j ¡n |j ¡0dS)NÚwinerrorri&') rŠÚcloserˆrSrƒÚ SHUT_RDWRrTÚerrnoZENOTCONNru)rVÚexcr>r>r?rSOs  ÿzIMAP4.shutdowncCs|jSrz)rˆrer>r>r?rƒ_sz IMAP4.socketcCsBd}| ddg|¡\}}|dr(||fS| ¡\}}| |||¡S)NZRECENTrhéÿÿÿÿ)Ú_untagged_responseÚnoop©rVÚnameÚtypÚdatr>r>r?Úrecentks  z IMAP4.recentcCs| |dg| ¡¡Srz)ržÚupper)rVÚcoder>r>r?Úresponse|szIMAP4.responsecCsxd}|s d}|r.|d|dfdkr2d|}nd}|r@t|ƒ}nd}t t|¡}|jrbd|d}||_| ||||¡S) NrÚINBOXrr©ú(ú)ú(%s)sUTF8 (ó))r ÚMapCRLFÚsubÚCRLFr\rHÚ_simple_command)rVÚmailboxÚflagsÚ date_timeÚmessager¡rHr>r>r?ÚappendŠs    z IMAP4.appendcCsP| ¡}t|ƒj|_| d|¡\}}|dkrB| |d dd¡¡‚d|_||fS)NrrhrrfÚreplacer)r¥Ú_AuthenticatorÚprocessrHr±r@ÚdecoderG)rVZ mechanismZ authobjectÚmechr¢r£r>r>r?Ú authenticate¤s zIMAP4.authenticatecCs d}| |¡\}}| |||¡S)Nr©r±ržr r>r>r?Ú capabilityÁszIMAP4.capabilitycCs | d¡S)Nr©r±rer>r>r?ÚcheckÊsz IMAP4.checkcCs*z| d¡\}}Wd|_nd|_0||fS)Nrr©r±rG©rVr¢r£r>r>r?r™Òsz IMAP4.closecCs| d||¡S)Nrr¿)rVÚ message_setZ new_mailboxr>r>r?Úcopyász IMAP4.copycCs | d|¡S)Nrr¿©rVr²r>r>r?Úcreateész IMAP4.createcCs | d|¡S)Nrr¿rÅr>r>r?Údeleteñsz IMAP4.deletecCs| d||¡S)Nrr¿)rVr²Úwhor>r>r?Ú deleteacløszIMAP4.deleteaclcCsHd|jvrt d¡‚| d|¡\}}|dkr@d| ¡vr@| ¡||fS)NrzServer does not support ENABLErhz UTF8=ACCEPT)rqrr@r±r¥rg)rVr¾r¢r–r>r>r?Úenableÿs   z IMAP4.enablecCs d}| |¡\}}| |||¡S)Nrr½r r>r>r?Úexpunge s z IMAP4.expungecCs$d}| |||¡\}}| |||¡S)Nrr½)rVrÃZ message_partsr¡r¢r£r>r>r?Úfetchs z IMAP4.fetchcCs| d|¡\}}| ||d¡S)NrZACLr½©rVr²r¢r£r>r>r?Úgetacl(sz IMAP4.getaclcCs"| d|||¡\}}| ||d¡S)Nr Ú ANNOTATIONr½)rVr²ÚentryZ attributer¢r£r>r>r?Ú getannotation1szIMAP4.getannotationcCs| d|¡\}}| ||d¡S)Nr!ÚQUOTAr½)rVÚrootr¢r£r>r>r?Úgetquota9szIMAP4.getquotacCs@| d|¡\}}| ||d¡\}}| ||d¡\}}|||gfS)Nr"rÒZ QUOTAROOTr½)rVr²r¢r£ZquotaZ quotarootr>r>r?Ú getquotarootDszIMAP4.getquotarootú""Ú*cCs$d}| |||¡\}}| |||¡S)Nr$r½©rVZ directoryÚpatternr¡r¢r£r>r>r?ÚlistOsz IMAP4.listcCs<| d|| |¡¡\}}|dkr.| |d¡‚d|_||fS)Nr%rhrr)r±Ú_quoter@rG)rVÚuserÚpasswordr¢r£r>r>r?Úlogin[s z IMAP4.logincCs|||_|_| d|j¡S)NzCRAM-MD5)rÜrÝr¼Ú_CRAM_MD5_AUTH)rVrÜrÝr>r>r?Úlogin_cram_md5iszIMAP4.login_cram_md5cCsBddl}t|jtƒr |j d¡n|j}|jd| ||d¡ ¡S)Nrrfú Úmd5)ÚhmacÚ isinstancerÝÚstrÚencoderÜZHMACÚ hexdigest)rVZ challengerãÚpwdr>r>r?rßrs ÿzIMAP4._CRAM_MD5_AUTHcCs$d|_| d¡\}}| ¡||fSr|)rGr±rSrÂr>r>r?r}zsz IMAP4.logoutcCs$d}| |||¡\}}| |||¡S)Nr&r½rØr>r>r?Úlsub‡sz IMAP4.lsubcCs| d|¡\}}| ||d¡S)Nr#r½rÍr>r>r?Úmyrights’szIMAP4.myrightscCs d}| |¡\}}| |||¡S)Nr'r½r r>r>r?Ú namespacešszIMAP4.namespacecCs | d¡S)Nr(r¿rer>r>r?rŸ¤sz IMAP4.noopcCs(d}| |||||¡\}}| ||d¡S)Nr)rr½)rVZ message_numZ message_partÚstartÚlengthr¡r¢r£r>r>r?Úpartial¯sz IMAP4.partialcCsd}| d|¡S)Nr*r¿)rVrÜr¡r>r>r?Ú proxyauth»s zIMAP4.proxyauthcCs| d||¡S)Nr+r¿)rVZ oldmailboxZ newmailboxr>r>r?ÚrenameÈsz IMAP4.renamecGsXd}|r4|jrt d¡‚|j|d|g|¢RŽ\}}n|j|g|¢RŽ\}}| |||¡S)Nr,z'Non-None charset not valid in UTF8 modeÚCHARSET)r\rr@r±rž)rVÚcharsetZcriteriar¡r¢r£r>r>r?ÚsearchÐs z IMAP4.searchr¨FcCsvi|_||_|rd}nd}| ||¡\}}|dkr@d|_||fSd|_d|jvrb|sb| d|¡‚||j ddg¡fS) Nrr-rhrrú READ-ONLYz%s is not writableÚEXISTS)rJrLr±rGrCÚget)rVr²rCr¡r¢r£r>r>r?Úselectâs  ÿz IMAP4.selectcCs| d|||¡S)Nr.r¿)rVr²rÈZwhatr>r>r?Úsetaclsz IMAP4.setaclcGs$|jdg|¢RŽ\}}| ||d¡S)Nr/rÏr½)rVr~r¢r£r>r>r?Ú setannotation szIMAP4.setannotationcCs | d||¡\}}| ||d¡S)Nr0rÒr½)rVrÓZlimitsr¢r£r>r>r?ÚsetquotaszIMAP4.setquotacGsHd}|d|dfdkr d|}|j|||g|¢RŽ\}}| |||¡S)Nr1rrr©r¬r½)rVZ sort_criteriaròÚsearch_criteriar¡r¢r£r>r>r?Úsorts z IMAP4.sortcCs¦d}ts| d¡‚|jr"| d¡‚||jvr6| d¡‚|durFt ¡}| |¡\}}|dkrŽ|j|j |j d|_ |j   d¡|_ d|_|  ¡n | d ¡‚| |||¡S) Nr2zSSL support missingzTLS session already establishedzTLS not supported by serverrh©Zserver_hostnamer‡TzCouldn't establish TLS session)ÚHAVE_SSLr@rNrBrqÚsslÚ_create_stdlib_contextr±Ú wrap_socketrˆrWr‰rŠrorž)rVÚ ssl_contextr¡r¢r£r>r>r?Ústarttls)s&    ÿ  zIMAP4.starttlscCs$d}| |||¡\}}| |||¡S)Nr3r½)rVr²Únamesr¡r¢r£r>r>r?Ústatus@sz IMAP4.statuscCs>|d|dfdkrd|}| d|||¡\}}| ||d¡S)Nrrr©r¬r4rr½)rVrÃÚcommandr³r¢r£r>r>r?ÚstoreLsz IMAP4.storecCs | d|¡S)Nr5r¿rÅr>r>r?Ú subscribeWszIMAP4.subscribecGs,d}|j|||g|¢RŽ\}}| |||¡S)Nr6r½)rVZthreading_algorithmròrûr¡r¢r£r>r>r?Úthread_sz IMAP4.threadc Gsˆ| ¡}|tvr| d|¡‚|jt|vrL| d||jd t|¡f¡‚d}|j||g|¢RŽ\}}|dvrv|}nd}| |||¡S)NzUnknown IMAP4 UID command: %sú9command %s illegal in state %s, only allowed in states %sú, r7)r,r1r6r)r¥rtr@rGÚjoinr±rž)rVrr~r¡r¢r£r>r>r?Úuidis ÿþz IMAP4.uidcCs | d|¡S)Nr8r¿rÅr>r>r?Ú unsubscribe‚szIMAP4.unsubscribecCs*z| d¡\}}Wd|_nd|_0||fS)Nr9rrÁ)rVr¢r–r>r>r?ÚunselectŠs zIMAP4.unselectcGs.| ¡}|tvr|jft|<|j|g|¢RŽSrz)r¥rtrGr±©rVr¡r~r>r>r?Úxatomšs  z IMAP4.xatomcCs8|dur d}|j}||vr*|| |¡n |g||<dS©NrA)rJr‘r¶)rVr¢r£Úurr>r>r?Ú_append_untagged°s zIMAP4._append_untaggedcCs,|j d¡}|r(| |d |jd¡¡‚dS)NÚBYErr·)rJrörBrºr])rVÚbyer>r>r?Ú _check_bye¾s zIMAP4._check_byec Gsî|jt|vr4d|_| d||jd t|¡f¡‚dD]}||jvr8|j|=q8d|jvrj|jsj| d¡‚| ¡}t ||j ƒ}|d|}|D]0}|durœqŽt |t ƒr²t ||j ƒ}|d|}qŽ|j}|dur d|_t |ƒt |jƒurî|}nd}|t dt|ƒ|j ƒ}z| |t¡Wn4tyP} z| d| ¡‚WYd} ~ n d} ~ 00|dur`|S| ¡r~|j|r`|Sq`|rŽ||jƒ}z| |¡| t¡Wn4tyÚ} z| d| ¡‚WYd} ~ n d} ~ 00|s`qêq`|S) Nr r ©rhÚNOÚBADrôz#mailbox status changed to READ-ONLYó z {%s}zsocket error: %s)rGrtrHr@r rJrLrCÚ_new_tagÚbytesr]räråÚtypeÚ_commandr‘r—r°rTrBrnrIrK) rVr¡r~r¢Útagr–ÚargrHZ literatorÚvalr>r>r?rÄs` ÿþ   ÿ       $     $zIMAP4._commandc CsÊ|dk}|s| ¡z|j||d\}}Wnn|jyb}z| d||f¡‚WYd}~n@d}~0|jy˜}z| d||f¡‚WYd}~n d}~00|s¦| ¡|dkrÂ| d|||f¡‚||fS)Nr)Ú expect_byezcommand: %s => %srz%s command error: %s %s)rÚ_get_tagged_responserBr@)rVr¡r r}r¢r–r"r>r>r?Ú_command_completes&(zIMAP4._command_completecCsJ| ¡\}}|dgkr | d¡‚t|d|jƒ}| ¡}t| ¡ƒ|_dS)Nz"no CAPABILITY response from serverr)r¾r@rår]r¥ÚtupleÚsplitrqrÂr>r>r?ro#s    zIMAP4._get_capabilitiescCs®| ¡}| |j|¡rp|j d¡}||jvr:| d|¡‚|j d¡}t||jƒ}|j d¡}||gf|j|<nöd}| t |¡sš| |j |¡rš|j d¡}|jdurÐ| t |¡rÂ|j d¡|_ dS| d|¡‚|j d¡}t||jƒ}|j d¡}|durd}|r|d|}| |j |¡rZt|j d ¡ƒ}| |¡}| |||f¡| ¡}q| ||¡|d vrª| t|¡rª|j d¡}t||jƒ}| ||j d¡¡|S) Nr zunexpected tagged response: %rrr–Zdata2zunexpected response: %rrArrr)Ú _get_lineÚ_matchrlÚmoÚgrouprIrBrår]ÚUntagged_responserdÚ ContinuationrKrbÚintr‹rÚ Response_code)rVÚrespr r¢r£Zdat2rr–r>r>r?rn,sD                 zIMAP4._get_responsec Csˆ|j|}|dur|j|=|S|rDd}|j |d¡}|durD||fS| ¡z | ¡Wq|jy€}z‚WYd}~qd}~00qdS)Nr)rIrJÚpoprrnrB)rVr r#Úresultr¢rr"r>r>r?r$|s  zIMAP4._get_tagged_responsecCs>| ¡}|s| d¡‚| d¡s.| d|¡‚|dd…}|S)Nzsocket error: EOFr z#socket error: unterminated line: %réþÿÿÿ)rrBÚendswithr’r>r>r?r(s   zIMAP4._get_linecCs| |¡|_|jduSrz)Úmatchr*)rVZcreÚsr>r>r?r)°s z IMAP4._matchcCs2|jtt|jƒ|jƒ}|jd|_d|j|<|S)NrŽ)rkrrårMr]rI)rVr r>r>r?r¼s  zIMAP4._new_tagcCs$| dd¡}| dd¡}d|dS)Nú\z\\ú"z\")r·)rVr!r>r>r?rÛÄs  z IMAP4._quotecGs| ||j|g|¢RŽ¡Srz)r%rrr>r>r?r±ÌszIMAP4._simple_commandcCs8|dkr||fS||jvr$|dgfS|j |¡}||fS)Nr)rJr1)rVr¢r£r¡r–r>r>r?ržÑs    zIMAP4._untagged_response)rÖr×)rÖr×)r¨F)N)F)Tr;r<r=rRr@rBrCÚ IMAP4_PORTrZrOrgrQryr{rr†rPr‹rr—rSrƒr¤r§r¶r¼r¾rÀr™rÄrÆrÇrÉrÊrËrÌrÎrÑrÔrÕrÚrÞràrßr}rérêrërŸrîrïrðrór÷rørùrúrürrrrr r rrrrrrr%rornr$r(r)rrÛr±ržÚ_mesgZ_dump_urÚ_logZ print_logr>r>r>r?r‡s˜1*                     M P ! $rc@s:eZdZdeddddfdd„Zdd„Zdedfdd„ZdS) Ú IMAP4_SSLrDNcCs’|dur|durtdƒ‚|dur0|dur0tdƒ‚|dus@|durVddl}| dtd¡||_||_|durxtj||d}||_t   ||||¡dS)Nz8ssl_context and keyfile arguments are mutually exclusivez9ssl_context and certfile arguments are mutually exclusiverzEkeyfile and certfile are deprecated, use a custom ssl_context insteadé)ÚcertfileÚkeyfile) r€ÚwarningsÚwarnÚDeprecationWarningr?r>rÿrrrrZ)rVrWrXr?r>rrYr@r>r>r?rZs"ÿÿzIMAP4_SSL.__init__cCst ||¡}|jj||jdS)Nrý)rr†rrrW)rVrYrˆr>r>r?r†.s ÿzIMAP4_SSL._create_socketcCst ||||¡dSrz)rrPrUr>r>r?rP3szIMAP4_SSL.open)r;r<r=ÚIMAP4_SSL_PORTrZr†rPr>r>r>r?r<s ÿ r<c@s>eZdZdd„Zddd„Zdd„Zdd „Zd d „Zd d „ZdS)rcCs||_t |¡dSrz)rrrZ)rVrr>r>r?rZJszIMAP4_stream.__init__NcCsNd|_d|_d|_d|_tj|jttjtjddd|_ |j j |_ |j j |_ dS)NT)ÚbufsizeÚstdinÚstdoutÚshellÚ close_fds)rWrXrˆrŠÚ subprocessÚPopenrrÚPIPEr¹rEÚ writefilerFÚreadfilerUr>r>r?rPOsý zIMAP4_stream.opencCs |j |¡Srz)rMr‹rŒr>r>r?r‹_szIMAP4_stream.readcCs |j ¡Srz)rMrrer>r>r?rdszIMAP4_stream.readlinecCs|j |¡|j ¡dSrz)rLÚwriteÚflushr•r>r>r?r—is zIMAP4_stream.sendcCs"|j ¡|j ¡|j ¡dSrz)rMr™rLr¹Úwaitrer>r>r?rSos  zIMAP4_stream.shutdown)NNN) r;r<r=rZrPr‹rr—rSr>r>r>r?r>s   rc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) r¸cCs ||_dSrz)r»)rVZmechinstr>r>r?rZ}sz_Authenticator.__init__cCs&| | |¡¡}|durdS| |¡S)Nó*)r»rºræ)rVr–Úretr>r>r?r¹€sz_Authenticator.processcCsnd}t|tƒr| d¡}|rjt|ƒdkrB|dd…}|dd…}n|}d}t |¡}|r||dd…}q|S)NrArfé0r)rärårær‘ÚbinasciiZ b2a_base64)rVÚinpZoupÚtÚer>r>r?ræ†s      z_Authenticator.encodecCs|sdSt |¡Sr)rTZ a2b_base64)rVrUr>r>r?rºžsz_Authenticator.decodeN)r;r<r=rZr¹rærºr>r>r>r?r¸wsr¸z0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov DecrácCsi|]\}}| ¡|d“qS)rŽ)ræ)Ú.0Únr6r>r>r?Ú ¤rArZrŽc CsØt |¡}|sdSt| d¡}| d¡}t| d¡ƒ}t| d¡ƒ}t| d¡ƒ}t| d¡ƒ}t| d¡ƒ}t| d¡ƒ} t| d ¡ƒ} | d | d } |d krª| } ||||||d d d f } t | ¡| } t | ¡S) NÚmonÚzonenÚdayÚyearÚhourÚminÚsecÚzonehÚzonemé<ó-r) Ú InternalDater5ÚMon2numr+r.ÚcalendarZtimegmÚtimeÚ localtime)r0r*r[r\r]r^r_r`rarbrcÚzoneÚttÚutcr>r>r?r¦s$  rcCs@d}d}tt|ƒƒ}|rr>r?r És  r cCs$t |¡}|sdSt| d¡ ¡ƒS)Nr>r³)ÚFlagsr5r&r+r')r0r*r>r>r?r Ös r cCst|ttfƒr"t |tj¡ ¡}nàt|tƒr¶z |j }WnXt yŽt j r‚|d}|dkrnt   t  |¡¡d}t jt jf| }nt j }Yn0t|d}t|dd…dt|ƒiŽ}nLt|tƒrØ|jdurÒtdƒ‚|}n*t|tƒrú|d|dfdkrú|Std ƒ‚d  t|j¡}| |¡S) Nér)ZsecondséÚtzinfozdate_time must be awarer)r8r8zdate_time not of a known typez"%d-{}-%Y %H:%M:%S %z")rär.ÚfloatrZ fromtimestamprrmZ astimezoner&Ú tm_gmtoffrwriÚdaylightrjÚmktimeÚaltzonerrvr€råÚformatÚMonthsZmonthÚstrftime)r´ZdtZgmtoffÚdstZdeltaÚfmtr>r>r?r ás2 ÿ       r Ú__main__zd:s:)r>r>z-dz-s)rDzIMAP password for %s on %s: Ú localhostzJFrom: %(user)s@localhost%(lf)sSubject: IMAP4 test%(lf)s%(lf)sdata...%(lf)sÚ )rÜZlfrÞ)rÆ)ú /tmp/xxx 1)rð)r„z/tmp/yyy)r©ú /tmp/yyz 2r¶r†)rÚ)z/tmpzyy*)r÷r…)ró)NZSUBJECTÚtest)rÌ)Ú1z(FLAGS INTERNALDATE RFC822))r)rˆÚFLAGSz (\Deleted))rër>)rËr>)r¤r>)r™r>)r÷r>)r§)Z UIDVALIDITY)r )r,ZALL)r§)rõ)r}r>cCsLt d||f¡tt|ƒ|Ž\}}t d|||f¡|dkrH|d‚|S)Nz%s %sz %s => %s %srr)ÚMr:ru)Úcmdr~r¢r£r>r>r?ÚrunBs rŒrzPROTOCOL_VERSION = %szCAPABILITIES = %rrÚ)z/tmp/zyy%z .*"([^"]+)"$rrÇr rz%sz:(FLAGS INTERNALDATE RFC822.SIZE RFC822.HEADER RFC822.TEXT)z All tests OK.z Tests failed.z8 If you would like to see debugging output, try: %s -d5 )TrmrTr›rir^rƒrIrrirhrrrÚiorrÿrþÚ ImportErrorÚ__all__r°rEr9rCrprrtr_r-rsrfrarbr®r/r,rdr`rcrr<r¶rr¸r'r}Ú enumeratergrr r r r;ÚgetoptZgetpassÚargvZoptlistr~r@r"Zstream_commandÚoptr.rWZgetuserZUSERZPASSWDZ test_mesgZ test_seq1Z test_seq2rŒrŠrGr:rrrqr‹Úmlr5r*r+Úpathr£r Úprintr>r>r>r?ÚsJH    Õ0     ÿ6 9, #  )       òù           ÿ  ý