o ?OgRÖã@s" dZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z m Z m Z ddl mZzddlZdZWn eyJdZYnwgd¢ZdZdZd Zd Zd Zd Zid d“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d d“d!d“d"d“id#d“d$d“d%d“d&d“d'd“d(d“d)d“d*d“d+d“d,d“d-d“d.d“d/d“d0d“d1d“d2d“d3d“¥ddddddddd4œ¥Ze d5¡Ze d6¡Ze d7¡Ze d8ej¡Ze d9¡Z e d:¡Z!e d;¡Z"e d„d>ƒZ&erGd?d@„d@e&ƒZ'e (d@¡GdAdB„dBe&ƒZ)GdCdD„dDƒZ*dE +dF¡Z,dGdH„e-e,dId…ƒDƒZ.dJdK„Z/dLdM„Z0dNdO„Z1dPdQ„Z2e3dRkrddl4Z4ddl5Z5ze4 4ej6dId…dS¡\Z7Z8Wne4j9y|Z:z dT\Z7Z8WYdZ:[:ndZ:[:wwdZ;e7D]\Ze5 ?¡Z@e5 5dXe@e>p´dYf¡ZAdZe@d[d\œZBd]e@eAffd^d_d`dadbddeBffdcdddedfdgdhdidjdkfZCdldmdndodadddeBffdjdpfZDdqdr„ZEzŽe;rõe)e;ƒZFne&e>ƒZFeFjGdskreCdId…ZCeF HdteFjI¡eF HdueFjJf¡eCD] \ZKZ8eEeKe8ƒqeEdvdwƒD]ZLe MdxeL¡ZNeNr9eN OdI¡ZPneL +¡dyZPeEdzePfƒq(eDD]*\ZKZ8eEeKe8ƒZQeKe8fdnkr[qIeQdy +¡ZReRsfqIeEd{dd|eRdyd}fƒqIeSd~ƒWdSeSdƒesŽeSd€ej6dƒ‚dS)z2.58éN)ÚdatetimeÚtimezoneÚ timedelta)ÚDEFAULT_BUFFER_SIZETF)ÚIMAP4Ú IMAP4_streamÚInternaldate2tupleÚInt2APÚ ParseFlagsÚTime2Internaldateó éiá)Z IMAP4REV1ri@BÚAPPEND)ÚAUTHÚSELECTEDÚ AUTHENTICATE)ÚNONAUTHÚ CAPABILITY)rrrÚLOGOUTÚCHECK)rÚCLOSEÚCOPYÚCREATEÚDELETEÚ DELETEACLÚENABLE)rÚEXAMINEÚEXPUNGEÚFETCHÚGETACLÚ GETANNOTATIONÚGETQUOTAÚ GETQUOTAROOTÚMYRIGHTSÚLISTÚLOGINrÚLSUBZMOVEÚ NAMESPACEÚNOOPÚPARTIALÚ PROXYAUTHÚRENAMEÚSEARCHÚSELECTÚSETACLÚ SETANNOTATIONÚSETQUOTAÚSORT)ÚSTARTTLSÚSTATUSÚSTOREÚ SUBSCRIBEÚTHREADÚUIDÚ UNSUBSCRIBEÚUNSELECTs\+( (?P.*))?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˜eZdZ Gdd„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'd¥dKdL„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@ó eZdZdS)z IMAP4.errorN©Ú__name__Ú __module__Ú __qualname__©r?r?ú./opt/alt/python310/lib64/python3.10/imaplib.pyÚerror¸ó rAc@r:)z IMAP4.abortNr;r?r?r?r@Úabort¹rBrCc@r:)zIMAP4.readonlyNr;r?r?r?r@ÚreadonlyºrBrDÚNc CsŠt|_d|_d|_i|_i|_d|_d|_d|_d|_ |  ¡|  |||¡z|  ¡WdSt yDz| ¡W‚tyCY‚ww)NrrEFr)Ú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©rWr?r?r@rPÕszIMAP4._mode_asciicCs(d|_d|_t t¡|_t t¡|_dS)NTúutf-8)r]r^r_r`rarcrdrerfr?r?r@Ú _mode_utf8Üs zIMAP4._mode_utf8cCsœtt dd¡ƒ|_t d|jdtj¡|_ | ¡|_d |jvr%d |_nd |jvr.d|_n| |j¡‚| ¡ tD] }||jvrCq;||_dS| d¡‚)Niiÿÿs(?Ps"\d+) (?P[A-Z]+) (?P.*)Fé rézimaplib version %sznew IMAP4 connection, tag=%sZPREAUTHrÚOKrézCAPABILITIES: %rzserver not IMAP4 compliant)r ÚrandomZrandintÚtagprer_r`rbÚtagreÚ _cmd_log_lenÚ _cmd_log_idxÚ_cmd_logrGÚ_mesgÚ __version__Ú _get_responseZwelcomerKrHrAÚ_get_capabilitiesÚ capabilitiesÚAllowedVersionsÚPROTOCOL_VERSION)rWÚversionr?r?r@rRãs.ÿþþ      zIMAP4._connectcCs"|tvr t|| ¡ƒStd|ƒ‚)NzUnknown IMAP4 command: '%s')ÚCommandsÚgetattrÚlowerÚAttributeError)rWÚattrr?r?r@Ú __getattr__ s zIMAP4.__getattr__cCs|S©Nr?rfr?r?r@Ú __enter__szIMAP4.__enter__cGs2|jdkrdSz| ¡WdStyYdSw©Nr)rHÚlogoutrU)rWÚargsr?r?r@Ú__exit__s  ÿzIMAP4.__exit__cCs`|dur |s tdƒ‚|jsdn|j}t d||j|j¡||jf}|dur+t ||¡St |¡S)Nz0Non-blocking socket (timeout=0) is not supportedz imaplib.open)Ú ValueErrorrXÚsysÚauditrYÚsocketZcreate_connection)rWrZrXZaddressr?r?r@Ú_create_socket#s    zIMAP4._create_socketcCs, ||_||_| |¡|_|j d¡|_dS)NÚrb)rXrYr‹ÚsockÚmakefileÚfilerVr?r?r@rQ0s  z IMAP4.opencCó |j |¡Sr)rÚread©rWÚsizer?r?r@r‘<ó z IMAP4.readcCs0 |j td¡}t|ƒtkr| dt¡‚|S)Nrjzgot more than %d bytes)rÚreadlineÚ_MAXLINEÚlenrA©rWÚliner?r?r@r•As  zIMAP4.readlinecCs t d||¡|j |¡dS)Nz imaplib.send)rˆr‰rZsendall©rWÚdatar?r?r@ÚsendIsz IMAP4.sendc Cs |j ¡z;z |j tj¡Wn!ty1}z|jtjkr't |ddƒdkr'‚WYd}~n d}~wwW|j ¡dSW|j ¡dS|j ¡w)NZwinerrorri&') rÚcloserrTrŠZ SHUT_RDWRrUÚerrnoZENOTCONNr|)rWÚexcr?r?r@rTOs  €úÿ €zIMAP4.shutdowncCs |jSr)rrfr?r?r@rŠ_sz IMAP4.socketcCsD d}| ddg|¡\}}|dr||fS| ¡\}}| |||¡S)NZRECENTrkéÿÿÿÿ)Ú_untagged_responseÚnoop©rWÚnameÚtypÚdatr?r?r@Úrecentks z IMAP4.recentcCs | |dg| ¡¡Sr)r¡Úupper)rWÚcoder?r?r@Úresponse|szIMAP4.responsecCsz d}|sd}|r|d|dfdkrd|}nd}|r!t|ƒ}nd}t t|¡}|jr2d|d}||_| ||||¡S) NrÚINBOXrr ©ú(ú)ú(%s)sUTF8 (ó))r ÚMapCRLFÚsubÚCRLFr]rIÚ_simple_command)rWÚmailboxÚflagsÚ date_timeÚmessager¤rIr?r?r@ÚappendŠs"€   z IMAP4.appendcCsR | ¡}t|ƒj|_| d|¡\}}|dkr"| |d dd¡¡‚d|_||fS)Nrrkr rgÚreplacer)r¨Ú_AuthenticatorÚprocessrIr´rAÚdecoderH)rWZ mechanismZ authobjectÚmechr¥r¦r?r?r@Ú authenticate¤s zIMAP4.authenticatecCó" d}| |¡\}}| |||¡S)Nr©r´r¡r£r?r?r@Ú capabilityÁszIMAP4.capabilitycCs | d¡S)Nr©r´rfr?r?r@ÚcheckÊs z IMAP4.checkcCó* z| d¡\}}Wd|_||fSd|_w)Nrr©r´rH©rWr¥r¦r?r?r@rÒs ÿz IMAP4.closecCó | d||¡S)NrrÃ)rWÚ message_setZ new_mailboxr?r?r@Úcopyáóz IMAP4.copycCó | d|¡S)NrrérWrµr?r?r@Úcreateéó z IMAP4.createcCrÌ)NrrÃrÍr?r?r@ÚdeleteñrÏz IMAP4.deletecCrÈ)NrrÃ)rWrµÚwhor?r?r@Ú deleteaclørËzIMAP4.deleteaclcCsJ d|jvr t d¡‚| d|¡\}}|dkr!d| ¡vr!| ¡||fS)NrzServer does not support ENABLErkz UTF8=ACCEPT)rwrrAr´r¨rh)rWrÂr¥r›r?r?r@Úenableÿs  z IMAP4.enablecCrÀ)NrrÁr£r?r?r@Úexpunge sz IMAP4.expungecCó& d}| |||¡\}}| |||¡S)NrrÁ)rWrÉZ message_partsr¤r¥r¦r?r?r@Úfetchs z IMAP4.fetchcCó | d|¡\}}| ||d¡S)NrZACLrÁ©rWrµr¥r¦r?r?r@Úgetacl(óz IMAP4.getaclcCs$ | d|||¡\}}| ||d¡S)Nr Ú ANNOTATIONrÁ)rWrµÚentryZ attributer¥r¦r?r?r@Ú getannotation1szIMAP4.getannotationcCr×)Nr!ÚQUOTArÁ)rWÚrootr¥r¦r?r?r@Úgetquota9szIMAP4.getquotacCsB | d|¡\}}| ||d¡\}}| ||d¡\}}|||gfS)Nr"rÞZ QUOTAROOTrÁ)rWrµr¥r¦ZquotaZ quotarootr?r?r@Ú getquotarootDs  zIMAP4.getquotarootú""Ú*cCrÕ)Nr$rÁ©rWZ directoryÚpatternr¤r¥r¦r?r?r@ÚlistOóz IMAP4.listcCs> | d|| |¡¡\}}|dkr| |d¡‚d|_||fS)Nr%rkr r)r´Ú_quoterArH)rWÚuserÚpasswordr¥r¦r?r?r@Úlogin[s z IMAP4.logincCs |||_|_| d|j¡S)NzCRAM-MD5)rérêr¿Ú_CRAM_MD5_AUTH)rWrérêr?r?r@Úlogin_cram_md5iszIMAP4.login_cram_md5cCsD ddl}t|jtƒr|j d¡n|j}|jd| ||d¡ ¡S)Nrrgú Zmd5)ÚhmacÚ isinstancerêÚstrÚencoderéZHMACZ hexdigest)rWZ challengerïÚpwdr?r?r@rìrs ÿzIMAP4._CRAM_MD5_AUTHcCs& d|_| d¡\}}| ¡||fSrƒ)rHr´rTrÇr?r?r@r„zs z IMAP4.logoutcCrÕ)Nr&rÁrär?r?r@Úlsub‡rçz IMAP4.lsubcCs | d|¡\}}| ||d¡S)Nr#rÁrØr?r?r@Úmyrights’rÚzIMAP4.myrightscCrÀ)Nr'rÁr£r?r?r@Ú namespacešszIMAP4.namespacecCs | d¡S)NFrlr()rGÚ_dump_urrKr´rfr?r?r@r¢¤s z IMAP4.noopcCs* d}| |||||¡\}}| ||d¡S)Nr)rrÁ)rWZ message_numZ message_partÚstartZlengthr¤r¥r¦r?r?r@Úpartial¯sz IMAP4.partialcCs d}| d|¡S)Nr*rÃ)rWrér¤r?r?r@Ú proxyauth»s zIMAP4.proxyauthcCrÈ)Nr+rÃ)rWZ oldmailboxZ newmailboxr?r?r@ÚrenameÈrËz IMAP4.renamecGsZ d}|r|jr t d¡‚|j|d|g|¢RŽ\}}n |j|g|¢RŽ\}}| |||¡S)Nr,z'Non-None charset not valid in UTF8 modeÚCHARSET)r]rrAr´r¡)rWÚcharsetZcriteriar¤r¥r¦r?r?r@ÚsearchÐs z IMAP4.searchr«FcCsz i|_||_|r d}nd}| ||¡\}}|dkr!d|_||fSd|_d|jvr3|s3 | d |¡‚||j d dg¡fS) Nrr-rkrrú READ-ONLYFrjz%s is not writableÚEXISTS)rKrMr´rHrGr÷rDÚget)rWrµrDr¤r¥r¦r?r?r@Úselectâs"  ÿz IMAP4.selectcCs | d|||¡S)Nr.rÃ)rWrµrÑZwhatr?r?r@Úsetaclsz IMAP4.setaclcGs& |jdg|¢RŽ\}}| ||d¡S)Nr/rÛrÁ)rWr…r¥r¦r?r?r@Ú setannotation szIMAP4.setannotationcCs" | d||¡\}}| ||d¡S)Nr0rÞrÁ)rWrßZlimitsr¥r¦r?r?r@ÚsetquotaszIMAP4.setquotacGsJ d}|d|dfdkrd|}|j|||g|¢RŽ\}}| |||¡S)Nr1rr r¬r¯rÁ)rWZ sort_criteriarýÚsearch_criteriar¤r¥r¦r?r?r@Úsorts z IMAP4.sortcCs¦d}ts | d¡‚|jr| d¡‚||jvr| d¡‚|dur#t ¡}| |¡\}}|dkrG|j|j |j d|_ |j   d¡|_ d|_|  ¡n| d ¡‚| |||¡S) Nr2zSSL support missingzTLS session already establishedzTLS not supported by serverrk©Zserver_hostnamerŒTzCouldn't establish TLS session)ÚHAVE_SSLrArOrCrwÚsslÚ_create_stdlib_contextr´Ú wrap_socketrrXrŽrrvr¡)rWÚ ssl_contextr¤r¥r¦r?r?r@Ústarttls)s&    ÿ  zIMAP4.starttlscCrÕ)Nr3rÁ)rWrµÚnamesr¤r¥r¦r?r?r@Ústatus@sz IMAP4.statuscCs@ |d|dfdkrd|}| d|||¡\}}| ||d¡S)Nrr r¬r¯r4rrÁ)rWrÉÚcommandr¶r¥r¦r?r?r@ÚstoreLs z IMAP4.storecCrÌ)Nr5rÃrÍr?r?r@Ú subscribeWrÏzIMAP4.subscribecGs. d}|j|||g|¢RŽ\}}| |||¡S)Nr6rÁ)rWZthreading_algorithmrýrr¤r¥r¦r?r?r@Úthread_sz IMAP4.threadc GsŠ | ¡}|tvr| d|¡‚|jt|vr'| d||jd t|¡f¡‚d}|j||g|¢RŽ\}}|dvr<|}nd}| |||¡S)NzUnknown IMAP4 UID command: %sú9command %s illegal in state %s, only allowed in states %sú, r7)r,r1r6r)r¨r{rArHÚjoinr´r¡)rWrr…r¤r¥r¦r?r?r@Úuidis  ÿþz IMAP4.uidcCrÌ)Nr8rÃrÍr?r?r@Ú unsubscribe‚rÏzIMAP4.unsubscribecCrÅ)Nr9rrÆ)rWr¥r›r?r?r@ÚunselectŠs ÿzIMAP4.unselectcGs0 | ¡}|tvr|jft|<|j|g|¢RŽSr)r¨r{rHr´©rWr¤r…r?r?r@Úxatomšs   z IMAP4.xatomcCs<|durd}|j} ||vr|| |¡dS|g||<dS©Nó)rKrGrsr—rr¹)rWr¥r¦Zurr?r?r@Ú_append_untagged°szIMAP4._append_untaggedcCs,|j d¡}|r| |d |jd¡¡‚dS)NÚBYEr rº)rKrrCr½r^)rWÚbyer?r?r@Ú _check_bye¾s ÿzIMAP4._check_byec GsÌ|jt|vrd|_| d||jd t|¡f¡‚dD] }||jvr'|j|=qd|jvr5|js5| d¡‚| ¡}t ||j ƒ}|d|}|D]}|durNqGt |t ƒrYt ||j ƒ}|d|}qG|j}|dur„d|_t |ƒt |jƒurv|}nd}|t dt|ƒ|j ƒ} z | |t¡Wnty¡} z| d | ¡‚d} ~ ww|dur¨|S | ¡r¸|j|r´|S| ¡s­|r¿||jƒ} z | |¡| t¡Wntyß} z| d | ¡‚d} ~ ww|så |Sq©) Nrr©rkÚNOÚBADrÿz#mailbox status changed to READ-ONLYó z {%s}Féz> %rzsocket error: %s)rHr{rIrArrKrMrDÚ_new_tagÚbytesr^rðrñÚtypeÚ_commandr—rGrsÚ_logrœr³rUrCrurJrL) rWr¤r…r¥Útagr›ÚargrIZ literatorÚvalr?r?r@r+Äst ÿþ € ÿ      €ÿ þ  €ÿçzIMAP4._commandc Cs²|dk}|s | ¡z |j||d\}}Wn+|jy+}z | d||f¡‚d}~w|jy@}z | d||f¡‚d}~ww|sG| ¡|dkrU| d|||f¡‚||fS)Nr)Ú expect_byezcommand: %s => %sr%z%s command error: %s %s)r"Ú_get_tagged_responserCrA)rWr¤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ÂrArñr^r¨ÚtupleÚsplitrwrÇr?r?r@rv#s   zIMAP4._get_capabilitiescCs²| ¡}| |j|¡r8|j d¡}||jvr| d|¡‚|j d¡}t||jƒ}|j d¡}||gf|j|<n~d}| t |¡sM| |j |¡rM|j d¡}|jdurh| t |¡ra|j d¡|_ dS| d|¡‚|j d¡}t||jƒ}|j d¡}|dur€d}|rˆ|d|}| |j |¡r°t|j d ¡ƒ} | |¡}| |||f¡| ¡}| |j |¡s| ||¡|d vrÖ| t|¡rÖ|j d¡}t||jƒ}| ||j d¡¡ |S)Nr-zunexpected tagged response: %rr*r›Zdata2zunexpected response: %rrr&r“Fr'zread literal size %sr#)Ú _get_lineÚ_matchroÚmoÚgrouprJrCrñr^ÚUntagged_responsereÚ ContinuationrLrcÚintrGrsr‘rÚ Response_code)rWÚrespr-r¥r¦Zdat2r“r›r?r?r@ru,sJ              ð   zIMAP4._get_responsec Cs| |j|}|dur|j|=|S|r#d}|j |d¡}|dur#||fS| ¡z| ¡Wn|jy<}z ‚d}~wwq)Nrjr )rJrKÚpopr"rurCrGÚ print_log)rWr-r0Úresultr¥r!r/r?r?r@r1|s&  €üèzIMAP4._get_tagged_responsecCs@| ¡}|s | d¡‚| d¡s| d|¡‚|dd…} |S)Nzsocket error: EOFr z#socket error: unterminated line: %réþÿÿÿ)r•rCÚendswithrGrsr,r˜r?r?r@r5s   zIMAP4._get_linecCs| |¡|_ |jduSr)Úmatchr7rGrsråÚgroups)rWZcreÚsr?r?r@r6°s  z IMAP4._matchcCs2|jtt|jƒ|jƒ}|jd|_d|j|<|S)Nrj)rnr)rñrNr^rJ)rWr-r?r?r@r(¼s  zIMAP4._new_tagcCs$| dd¡}| dd¡}d|dS)Nú\z\\ú"z\")rº)rWr.r?r?r@rèÄs   z IMAP4._quotecGs| ||j|g|¢RŽ¡Sr)r2r+rr?r?r@r´ÌszIMAP4._simple_commandcCs:|dkr||fS||jvr|dgfS|j |¡} ||fS)Nr$)rKr>rGrs)rWr¥r¦r¤r›r?r?r@r¡Ñs   zIMAP4._untagged_responsecCsN|durt ¡}t dt |¡¡}tj d||dd|f¡tj ¡dS)Nz%M:%Sz %s.%02d %s éd)ÚtimeÚstrftimeÚ localtimerˆÚstderrÚwriteÚflush)rWrEZsecsZtmr?r?r@rsßs z IMAP4._mesgcCs2|sdSdd„| ¡Dƒ}| dd |¡¡dS)Ncss"|] \}}|›d|›VqdS)z: Nr?)Ú.0ÚkeyÚvaluer?r?r@Ú és€ÿz!IMAP4._dump_ur..zuntagged responses dump:z )Úitemsrsr)rWZuntagged_resp_dictrSr?r?r@r÷æs ÿzIMAP4._dump_urcCs<|t ¡f|j|j<|jd7_|j|jkrd|_dSdS)Nrjr)rIrrrqrpr˜r?r?r@r,ís   ÿz IMAP4._logcCsn| dt|jƒ¡|j|j}}|r5z |j|j|ŽWnY|d7}||jkr-d}|d8}|sdSdS)Nzlast %d IMAP4 interactions:rjr)rsr—rrrqrp)rWÚiÚnr?r?r@r?ôs  øzIMAP4.print_log)rârã)r«Fr)F)Tr<r=r>rSrArCrDÚ IMAP4_PORTr[rPrhrRr€r‚r†r‹rQr‘r•rœrTrŠr§rªr¹r¿rÂrÄrrÊrÎrÐrÒrÓrÔrÖrÙrÝràrárærërírìr„rôrõrör¢rùrúrûrþrrrrrrrrrrrrrrrr"r+r2rvrur1r5r6r(rèr´r¡rsr÷r,r?r?r?r?r@r‡sœ/*                      M P!  rc@s<eZdZ deddddfdd„Zdd„Zdedfdd„ZdS) Ú IMAP4_SSLrENcCs’|dur |dur tdƒ‚|dur|durtdƒ‚|dus |dur+ddl}| dtd¡||_||_|durÚIMAP4_SSL_PORTr[r‹rQr?r?r?r@rWs ÿrWc@s@eZdZ dd„Zddd„Zdd„Zdd „Zd d „Zd d „ZdS)rcCs||_t |¡dSr)rrr[)rWrr?r?r@r[IszIMAP4_stream.__init__NcCsP d|_d|_d|_d|_tj|jttjtjddd|_ |j j |_ |j j |_ dS)NT)ÚbufsizeÚstdinÚstdoutÚshellZ close_fds)rXrYrrÚ subprocessÚPopenrrÚPIPEr¼r`Ú writefileraÚreadfilerVr?r?r@rQNsý zIMAP4_stream.opencCrr)rgr‘r’r?r?r@r‘^r”zIMAP4_stream.readcCs |j ¡Sr)rgr•rfr?r?r@r•cs zIMAP4_stream.readlinecCs |j |¡|j ¡dSr)rfrMrNršr?r?r@rœhs zIMAP4_stream.sendcCs$ |j ¡|j ¡|j ¡dSr)rgrrfr¼Úwaitrfr?r?r@rTns  zIMAP4_stream.shutdown)NNN) r<r=r>r[rQr‘r•rœrTr?r?r?r@r=s  rc@s.eZdZ dd„Zdd„Zdd„Zdd„Zd S) r»cCs ||_dSr)r¾)rWZmechinstr?r?r@r[|s z_Authenticator.__init__cCs&| | |¡¡}|durdS| |¡S)Nó*)r¾r½rò)rWr›Zretr?r?r@r¼s z_Authenticator.processcCspd}t|tƒr | d¡}|r6t|ƒdkr!|dd…}|dd…}n|}d}t |¡}|r4||dd…}|s|S)Nrrgé0r )rðrñròr—ÚbinasciiZ b2a_base64)rWÚinpZoupÚtÚer?r?r@rò…s     ÷ z_Authenticator.encodecCs|sdSt |¡Sr)rkZ a2b_base64)rWrlr?r?r@r½s z_Authenticator.decodeN)r<r=r>r[r¼ròr½r?r?r?r@r»vs  r»z0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov DecrîcCsi|] \}}| ¡|d“qS)rj)rò)rOrUrEr?r?r@Ú £srorjc CsÚ t |¡}|s dSt| d¡}| d¡}t| d¡ƒ}t| d¡ƒ}t| d¡ƒ}t| d¡ƒ}t| d¡ƒ}t| d¡ƒ} t| d ¡ƒ} | d | d } |d krV| } ||||||d d d f } t | ¡| } t | ¡S) NÚmonÚzonenÚdayÚyearÚhourÚminÚsecÚzonehÚzonemé<ó-r ) Ú InternalDaterCÚMon2numr8r;ÚcalendarZtimegmrIrK)r=r7rprqrrrsrtrurvrwrxZzoneZttÚutcr?r?r@r¥s&   rcCsD d}d}tt|ƒƒ}|r t|dƒ\}}|||d…|}|s |S)NrsABCDEFGHIJKLMNOPérj)r;ÚabsÚdivmod)Znumr/ZAPÚmodr?r?r@r Ès þr cCs& t |¡}|s dSt| d¡ ¡ƒS)Nr?r¶)ÚFlagsrCr3r8r4)r=r7r?r?r@r Õs  r cCs t|ttfƒrt |tj¡ ¡}npt|tƒr\z|j }Wn,t yHt j rB|d}|dkr8t   t  |¡¡d}t jt jf| }nt j }Ynwt|d}t|dd…dt|ƒiŽ}n&t|tƒrm|jdurjtdƒ‚|}nt|tƒr~|d|dfdkr~|Std ƒ‚d  t|j¡}| |¡S) Nér )ZsecondséÚtzinfozdate_time must be awarer)rGrGzdate_time not of a known typez"%d-{}-%Y %H:%M:%S %z")rðr;ÚfloatrZ fromtimestamprr~Z astimezoner3Ú tm_gmtoffr~rIÚdaylightrKÚmktimeÚaltzonerr†r‡rñÚformatÚMonthsZmonthrJ)r·ZdtZgmtoffZdstZdeltaZfmtr?r?r@r às< ÿÿ   €ù    r Ú__main__zd:s:)r?r?z-dz-s)rEzIMAP password for %s on %s: Z localhostzJFrom: %(user)s@localhost%(lf)sSubject: IMAP4 test%(lf)s%(lf)sdata...%(lf)sÚ )réZlfrë)rÎ)ú /tmp/xxx 1)rû)rz/tmp/yyy)r©ú /tmp/yyz 2r¹r’)ræ)z/tmpzyy*)rr‘)rþ)NZSUBJECTÚtest)rÖ)Ú1z(FLAGS INTERNALDATE RFC822))r)r”ÚFLAGSz (\Deleted))rör?)rÔr?)r§r?)rr?)rr?)rª)Z UIDVALIDITY)r)r,ZALL)rª)r)r„r?cCsLt d||f¡tt|ƒ|Ž\}}t d|||f¡|dkr$|d‚|S)Nz%s %sz %s => %s %sr$r)ÚMrsr|)Úcmdr…r¥r¦r?r?r@ÚrunAs r˜rzPROTOCOL_VERSION = %szCAPABILITIES = %rræ)z/tmp/zyy%z .*"([^"]+)"$r 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 )Trtrkržrmr_rŠrcrˆrIr}rrrÚiorr r Ú ImportErrorÚ__all__r³rFrVr^rxr–r{r`r:rƒr{rbrcr±r<r9rerardrrWr¹rr»r4rÚ enumerater|rr r r r<ZgetoptZgetpassÚargvZoptlistr…rAr/Zstream_commandÚoptr;rXZgetuserZUSERZPASSWDZ test_mesgZ test_seq1Z test_seq2r˜r–rHrsryrwr—ZmlrCr7r8Úpathr¦rÚprintr?r?r?r@ÚsžH  ÿ þýüûúùø ÷ ö õ ô óòñðïîíìëêéèçæåäãâá à!ß"Þ#Ý$Õ 0    ÿ 69 ,#  )€ÿ     €  òù            ÿý˜