+
     wi c                   s	   R t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
H
t
HtHt ^ RIHt  ^ RItRt. RjOtRt^ t^tR	tRktR
t/ RRlbRRmbRRnbRRobRRobRRobRRlbRRlbRRlbRRpbRRlbRRobRRobRRlbRRlbRRlbRRlb/ RRlbRRlbR RlbR!RmbRRnbR"RlbR#RobR$RlbR%RnbR&RobR'RpbR(RlbR)RobR*RlbR+RlbR,RlbR-RlbCR.RoR/RmR0RlR1RoR2RlR3RoR4RoR5RlR6Ro/	Ct]P4                  ! R74      t]P4                  ! R84      t]P4                  ! R94      t]P4                  ! R:]P<                  4      t]P4                  ! R;4      t ]P4                  ! R<4      t!]P4                  ! R=4      t"]P4                  ! R>]P<                  4      t#R:t$R>t%]P4                  ! R?4      t& ! R@ R4      t' ! RA RB4      t(]'       d    ! RC RD]'4      t)]PU                  RD4        ! RE R]'4      t+ ! RF RG4      t,RHP[                  RI4      t.]/! ].RJ,          4       U Uu/ uF  w  rVPa                  4       V ^,           bK  	  upp t1RK t2RL t3RM t4RN t5]6RO8X  Ed7   ^ RI7t7^ RI8t8 ]7Pn                  ! ]Pr                  RJ,          RP4      w  t:t;Rt>]: F/  w  t?t=]?RQ8X  d   ]@! ]=4      tK  ]?RR8X  g   K   ]=t>];'       d   K,  ]>3t;K1  	  ];'       g   Rrt;];^ ,          tA]8P                  ! 4       tC]8Pp                  ! RS]C: RT]A;'       g    RU: RV24      tDRWRX]CRYRZ/,          tER[]C]D33RsRtRuR]R\RR]E33RvRwRxRyRzR{R|R}R~3tFRRRRR]RRR]E33R}R3tGR` tH ]>'       d
   ]+! ]>4      tIM]'! ]A4      tI]IP                  R8X  d
   ]FRJ,          tF]IP                  Ra]IP                  ,          4       ]IP                  Rb]IP                  : 24       ]F F  w  tNt;]H! ]N];4       K  	  ]H! R^R4       FQ  tO]P                  ! Rc]O4      tQ]Q'       d   ]QP                  ^4      tSM]OP[                  4       R,          tS]H! Rd]S34       KS  	  ]G FU  w  tNt;]H! ]N];4      tT]N];3R8w  d   K  ]TR,          P[                  4       tU]U'       g   K;  ]H! R_RRe]UR,          ,          Rf34       KW  	  ]V! Rg4       R# R#   ] d    Rt EL9i ; iu upp i   ]7Px                   d   t=RqRqut:t; Rt=A=EL:Rt=A=ii ; i   ]V! Rh4       ]'       g!   ]V! Ri]Pr                  ^ ,          ,          4       h ; i)z2.60N)datetimetimezone	timedelta)DEFAULT_BUFFER_SIZETFIMAP4IMAP4_stream   
i  i@B APPENDAUTHAUTHENTICATE
CAPABILITYLOGOUTCHECKCLOSECOPYCREATEDELETE	DELETEACLENABLEEXAMINEEXPUNGEFETCHGETACLGETANNOTATIONGETQUOTAGETQUOTAROOTIDLEMYRIGHTSLISTLOGINLSUBZMOVE	NAMESPACENOOPPARTIAL	PROXYAUTHRENAMESEARCHSELECTSETACLSETANNOTATIONSETQUOTASORTSTARTTLSSTATUSSTORE	SUBSCRIBETHREADUIDUNSUBSCRIBEUNSELECTs   \+( (?P<data>.*))?s   .*FLAGS \((?P<flags>[^\)]*)\)s   .*INTERNALDATE "(?P<day>[ 0123][0-9])-(?P<mon>[A-Z][a-z][a-z])-(?P<year>[0-9][0-9][0-9][0-9]) (?P<hour>[0-9][0-9]):(?P<min>[0-9][0-9]):(?P<sec>[0-9][0-9]) (?P<zonen>[-+])(?P<zoneh>[0-9][0-9])(?P<zonem>[0-9][0-9])"s   .*{(?P<size>\d+)}$s
   \r\n|\r|\ns%   \[(?P<type>[A-Z-]+)( (?P<data>.*))?\]s$   \* (?P<type>[A-Z-]+)( (?P<data>.*))?s3   \* (?P<data>\d+) (?P<type>[A-Z-]+)( (?P<data2>.*))?s   [ -]c                   sn  a  ] tR t^t o  ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t	R	]
R
3R ltR tR tR tR tR tR tR tR	]
R
3R lt]R 4       tR tR tR tR tR tR tR tR tR tR tR t R  t!R! t"R" t#R# t$R$ t%R% t&R& t'R' t(R( t)R) t*R* t+R+ t,RVR, lt-RWR- lt.R. t/R/ t0R0 t1R1 t2RWR2 lt3R3 t4R4 t5R5 t6R6 t7R7 t8R8 t9R9 t:RXR: lt;R; t<R< t=R= t>R> t?RVR? lt@R@ tARA tBRB tCRC tDRD tERE tFRF tGRG tHRH tIRI tJRJ tKRK tLRL tMRYRM ltNRYRN ltORO tPRP tQRQ tRRR tSRS tTRT tURUtZT t[R
# )Zr   c                   s    ] tR t^tRtR# )IMAP4.error N__name__
__module____qualname____firstlineno____static_attributes__r3        /usr/lib64/python3.14/imaplib.pyerrorr2      s    Dr:   r<   c                   s    ] tR t^tRtR# )IMAP4.abortr3   Nr4   r3   r:   r;   abortr=      s    r:   r>   c                   s    ] tR t^tRtR# )IMAP4.readonlyr3   Nr4   r3   r:   r;   readonlyr?      s    4r:   r@   c                   s    ] tR t^tRtR# )IMAP4._responsetimeoutr3   Nr4   r3   r:   r;   _responsetimeoutrA      s    $r:   rB    Nc                s   \         V n        R V n        RV n        / V n        / V n        RV n        . V n        RV n        RV n	        ^ V n
        RV n        V P                  4        . V n        V P                  WV4        V P                  4        R#   \          d%     T P#                  4        h   \$         d     h i ; ii ; i)r   NrC   F)Debugdebugstateliteraltagged_commandsuntagged_responsescontinuation_response_idle_responses_idle_captureis_readonlytagnum_tls_established_mode_ascii_readbufopen_connect	ExceptionshutdownOSErrorselfhostporttimeout   &&&&r;   __init__ZIMAP4.__init__   s    

!"$%'"!"  % 			$g&	MMO 	   	s0   <B B=B+*B=+B96B=8B99B=c                s    R V n         RV n        \        P                  ! \        \        P
                  4      V n        \        P                  ! \        \        P
                  4      V n        R# )FZasciiN)	utf8_enabled	_encodingrecompile_LiteralASCIILiteral_Untagged_statusUntagged_statusrX      &r;   rP   ZIMAP4._mode_ascii   s?    ! zz(BHH5!zz*:BHHEr:   c                s    R V n         RV n        \        P                  ! \        4      V n        \        P                  ! \        4      V n        R# )Tutf-8N)r^   r_   r`   ra   rb   rd   re   rf   rg   rh   r;   
_mode_utf8ZIMAP4._mode_utf8   s3      zz(+!zz*:;r:   c                s&   \        \        P                  ! R R4      4      V n        \        P
                  ! RV P                  ,           R,           \        P                  4      V n         T P                  4       T n        RT P                   9   d	   RT n        M4RT P                   9   d	   RT n        MT P%                  T P                  4      hT P'                  4         \*         F  pYP(                  9   g   K  Yn         R# 	  T P%                  R	4      h)
i   i  s   (?P<tag>s"   \d+) (?P<type>[A-Z]+) (?P<data>.*)ZPREAUTHr   OKNONAUTHNzserver not IMAP4 compliant)Int2APrandomZrandinttagprer`   ra   rc   tagre_cmd_log_len_cmd_log_idx_cmd_logrE   _mesg__version___get_responsewelcomerI   rF   r<   _get_capabilitiescapabilitiesAllowedVersionsPROTOCOL_VERSION)rX   Zversion   & r;   rS   ZIMAP4._connect   s     V^^D%89ZZ++!&@!ABD((L
  ))+///DJT,,,"DJ**T\\**  'G///$+!	 ' jj566r:   c                sn    V\         9   d   \        WP                  4       4      # \        R V,          4      h)zUnknown IMAP4 command: '%s')CommandsgetattrZlowerAttributeError)rX   Zattr   &&r;   __getattr__ZIMAP4.__getattr__  s,    84..:TABBr:   c                    V # Nr3   rg   rh   r;   	__enter__ZIMAP4.__enter__      r:   c                sr    V P                   R 8X  d   R#  V P                  4        R#   \         d     R# i ; i)r   N)rF   logoutrV   )rX   argss   &*r;   __exit__ZIMAP4.__exit__  s1    ::!	KKM 		s   ' 66c                sB   Ve   V'       g   \        R4      hV P                  '       g   R MV P                  p\        P                  ! RW P                  V P                  4       W P                  3pVe   \
        P                  ! W14      # \
        P                  ! V4      # )Nz0Non-blocking socket (timeout=0) is not supportedzimaplib.open)
ValueErrorrY   sysauditrZ   socketZcreate_connection)rX   r[   rY   Zaddress   &&  r;   _create_socketZIMAP4._create_socket)  sw     wOPP999t$))		.$		499=#++G==''00r:   c                s    Wn         W n        V P                  V4      V n        V P                  P	                  R 4      V n        R# )rbN)rY   rZ   r   sockmakefile_filerW   r\   r;   rR   Z
IMAP4.open6  s6     		''0	YY''-
r:   c                sR    ^ RI pVP                  R\        ^R7       V P                  # )    Nz@IMAP4.file is unsupported, can cause errors, and may be removed.)Z
stacklevel)warningsZwarnZRuntimeWarningr   )rX   r   r|   r;   fileZ
IMAP4.fileB  s-     	N 	 	 zzr:   c                sD   . pV^ 8  d   \        V4      \        V P                  4      8  d   V P                  \        V4      ,          pMD V P                  P                  \        4      pT'       g   MT P                  P                  T4       \        V4      V8  d=   VP                  VRV 4       W1R .V P                  \        V4      R ,           V n        M%VP                  V4       V\        V4      ,          pK  RP                  V4      #   \
         d     K  i ; i)r   Nr:   )lenrQ   r   recvr   ConnectionErrorappendjoin)rX   sizepartsbufr   r;   readZ
IMAP4.readS  s     Qh5zC..mmCJ/))..)<=C $$S)3x4S$Z(!$Ut}}SZ[/I ILLCHDxx ' s   D DDc                s   R p. p^ pV\         8  Ed   \        V4      \        V P                  4      8  d   V P                  \        V4      ,          pMD V P                  P	                  \
        4      pT'       g   MT P                  P                  T4       VP                  V4      pVR8w  dF   V^,          pVP                  VRV 4       WER .V P                  \        V4      R ,           V n        M&VP                  V4       V\        V4      ,          pEK  RP                  V4      p\        V4      \         8  d   V P                  R\         ,          4      hV#   \         d     KQ  i ; i)s   
Nr:   zgot more than %d bytes)_MAXLINEr   rQ   r   r   r   r   r   Zfindr   r<   )rX   ZLFr   lengthr   Zposlines   &      r;   readlineZIMAP4.readline{  s(    x5zC..mmCJ/))..)<=C $$S)((2,CbyqS#Y'!$TdmmCJK.H HLLc#hFxxt9x**5@AA% ' s   E E,+E,c                sj    \         P                  ! R W4       V P                  P                  V4       R# )zimaplib.sendN)r   r   r   ZsendallrX   datar   r;   sendZ
IMAP4.send  s"    		.$-		$r:   c                s   V P                   P                  4         V P                  P                  \        P
                  4       V P                  P                  4        R#   \         d=   pTP                  \        P                  8w  d   \        TR ^ 4      R8w  d   h  Rp?L^Rp?ii ; i  T P                  P                  4        i ; i)Zwinerrori&'  N)
r   closer   rU   r   Z	SHUT_RDWRrV   errnoZENOTCONNr~   )rX   Zexcr|   r;   rU   ZIMAP4.shutdown  s    


	IIv//0 IIOO  	 		U^^+3
A.%7	 IIOOs)   )A! !B(,2B#B+ #B((B+ +Cc                s    V P                   # r   )r   rg   rh   r;   r   ZIMAP4.socket  s    
 yyr:   c                s    R pV P                  RR.V4      w  r#VR,          '       d   W#3# V P                  4       w  r#V P                  W#V4      # )ZRECENTrk   Nr   )_untagged_responsenooprX   nametypdat   &   r;   recentZIMAP4.recent  sQ     **4$>r778O99;&&s66r:   c                sF    V P                  VR .VP                  4       4      # r   )r   upper)rX   Zcoder   r;   responseZIMAP4.response  s!     &&tdVTZZ\BBr:   c                s    R pV'       g   RpV'       d"   V^ ,          VR,          3R8w  d
   RV,          pMRpV'       d   \        V4      pMRp\        P                  \        V4      pW`n        V P                  WQW#4      # )r   INBOX(%s)Nr   Z(Z))Time2InternaldateMapCRLFZsubCRLFrG   _simple_command)rX   mailboxflags	date_timeZmessager   rG   s   &&&&&  r;   r   ZIMAP4.append  sr     Gar#y0E))4II++dG,##D5DDr:   c                s    VP                  4       p\        V4      P                  V n        V P	                  R V4      w  rEVR8w  d)   V P                  VR,          P                  RR4      4      hRV n        WE3# )r	   rk   ri   replacer   r   )r   _AuthenticatorprocessrG   r   r<   decoderF   )rX   Z	mechanismZ
authobjectmechr   r      &&&   r;   authenticateZIMAP4.authenticate  sk       
 &j199''=$;**SW^^GY?@@
xr:   c                P    R pV P                  V4      w  r#V P                  W#V4      # )r
   r   r   r   r   r;   
capabilityZIMAP4.capability  s.     ''-&&s66r:   c                s$    V P                  R 4      # )r   r   rg   rh   r;   checkZIMAP4.check  s    
 ##G,,r:   c                V     V P                  R 4      w  rRV n        W3#   RT n        i ; i)r   r   r   rF   rX   r   r      &  r;   r   ZIMAP4.close&  s2    	 ++G4HCDJx  DJ    	(c                &    V P                  R W4      # )r   r   )rX   message_setZnew_mailbox   &&&r;   copyZ
IMAP4.copy5  s    
 ##FKEEr:   c                &    V P                  R V4      # )r   r   rX   r   r   r;   createZIMAP4.create=      
 ##Hg66r:   c                r   )r   r   r   r   r;   deleteZIMAP4.deleteE  r   r:   c                r   )r   r   )rX   r   whor   r;   	deleteaclZIMAP4.deleteaclL  s    
 ##K>>r:   c                s    R V P                   9  d   \        P                  R4      hV P                  R V4      w  r#VR8X  d&   RVP	                  4       9   d   V P                  4        W#3# )r   zServer does not support ENABLErk   zUTF8=ACCEPT)ry   r   r<   r   r   rj   )rX   r   r   r   r   r;   enableZIMAP4.enableS  s_    
 4,,,++>??((:>	$;=J,<,<,>>OOyr:   c                r   )r   r   r   r   r;   expungeZIMAP4.expunge_  s.     ''-&&s66r:   c                R    R pV P                  W1V4      w  rEV P                  WEV4      # )r   r   )rX   r   Zmessage_partsr   r   r   r   r;   fetchZIMAP4.fetchm  s0     ''=I&&s66r:   c                N    V P                  R V4      w  r#V P                  W#R4      # )r   ZACLr   rX   r   r   r   r   r;   getaclZIMAP4.getacl|  s+    
 ''':&&s77r:   c                sP    V P                  R WV4      w  rEV P                  WER4      # )r   
ANNOTATIONr   )rX   r   ZentryZ	attributer   r      &&&&  r;   getannotationZIMAP4.getannotation  s-     ''S&&s>>r:   c                r   )r   QUOTAr   )rX   rootr   r   r   r;   getquotaZIMAP4.getquota  s+     ''
D9&&s99r:   c                s    V P                  R V4      w  r#V P                  W#R4      w  r$V P                  W#R4      w  r%W%V.3# )r   r   Z	QUOTAROOTr   )rX   r   r   r   ZquotaZ	quotaroots   &&    r;   getquotarootZIMAP4.getquotaroot  sN    
 ''@,,Sw?
00;G&&&r:   c                s    \        W4      # r   )Idler)rX   durationr   r;   idleZ
IMAP4.idle  s     T$$r:   c                r   )r   r   rX   Z	directorypatternr   r   r   r   r;   listZ
IMAP4.list  0     ''A&&s66r:   c                s    V P                  R WP                  V4      4      w  r4VR8w  d   V P                  VR,          4      hRV n        W43# )r   rk   r   r   )r   _quoter<   rF   )rX   userpasswordr   r      &&&  r;   loginZIMAP4.login  sI     ''{{87LM$;**SW%%
xr:   c                sV    WuV n         V n        V P                  R V P                  4      # )zCRAM-MD5)r   r   r   _CRAM_MD5_AUTH)rX   r   r   r   r;   login_cram_md5ZIMAP4.login_cram_md5  s+    
 $( 	4=  T-@-@AAr:   c                s>   ^ RI p\        V P                  \        4      '       d   V P                  P	                  R4      pMV P                  p VP                  W1R4      pT P                   RTP                  4        2#   \         d    T P                  R4      hi ; i)r   Nri   Zmd5z(CRAM-MD5 authentication is not supported )
hmac
isinstancer   strencodeZHMACr   r<   r   Z	hexdigest)rX   Z	challenger   r   Zauthcode   &&   r;   r   ZIMAP4._CRAM_MD5_AUTH  s    dmmS))}}++G4H}}H	Iyye<H ))Ah002344  	I**GHH	Is   A? ?Bc                s\    R V n         V P                  R 4      w  rV P                  4        W3# )r   )rF   r   rU   r   r   r;   r   ZIMAP4.logout  s-     
''1xr:   c                r   )r   r   r   r   r;   lsubZ
IMAP4.lsub  r   r:   c                sN    V P                  R V4      w  r#V P                  W#R 4      # )r   r   r   r   r;   myrightsZIMAP4.myrights  s+    
 &&z7;&&s<<r:   c                r   )r   r   r   r   r;   	namespaceZIMAP4.namespace  s.    
 ''-&&s66r:   c                s&     T P                  R4      # )Fr    )rE   _dump_urrI   r   rg   rh   r;   r   Z
IMAP4.noop  s    
  ##F++r:   c                sT    R pV P                  WQW#V4      w  rgV P                  WgR4      # )r!   r   r   )rX   Zmessage_numZmessage_partZstartr   r   r   r   s   &&&&&   r;   partialZIMAP4.partial  s3     ''<PVW&&s99r:   c                s*    R pV P                  R V4      # )r"   r   )rX   r   r      && r;   	proxyauthZIMAP4.proxyauth$  s     ##K66r:   c                r   )r#   r   )rX   Z
oldmailboxZ
newmailboxr   r;   renameZIMAP4.rename1  s    
 ##HjEEr:   c                s    R pV'       dA   V P                   '       d   \        P                  R4      hV P                  ! VRV.VO5!  w  rEMV P                  ! V.VO5!  w  rEV P	                  WEV4      # )r$   z'Non-None charset not valid in UTF8 modeZCHARSET)r^   r   r<   r   r   )rX   charsetZcriteriar   r   r      &&*   r;   searchZIMAP4.search9  so        kk"KLL++D)WPxPHC++D<8<HC&&s66r:   c                s,   / V n         W n        V'       d   R pMRpV P                  W14      w  rEVR8w  d   RV n        WE3# RV n        RV P                   9   d"   V'       g    T P                  RT,          4      hW@P                   P                  RR.4      3# )	r   r%   rk   r   SELECTED	READ-ONLYz%s is not writableEXISTSN)rI   rM   r   rF   rE   r   r@   get)rX   r   r@   r   r   r   r   r;   selectZIMAP4.selectK  s     #%#DD''6$;DJ8O
$111  -- 4w >??++//4&AAAr:   c                s(    V P                  R WV4      # )r&   r   )rX   r   r   Zwhatr\   r;   setaclZIMAP4.setaclk  s    
 ##HgDAAr:   c                sR    V P                   ! R .VO5!  w  r#V P                  W#R4      # )r'   r   r   )rX   r   r   r   s   &*  r;   setannotationZIMAP4.setannotations  s.     ''?$?&&s>>r:   c                sN    V P                  R W4      w  r4V P                  W4R4      # )r(   r   r   )rX   r   Zlimitsr   r   r   r;   setquotaZIMAP4.setquota{  s+    
 ''
DA&&s99r:   c                s    R pV^ ,          VR,          3R8w  d
   RV,          pV P                   ! WAV.VO5!  w  rVV P                  WVV4      # )r)   r   r   r   r   )rX   Zsort_criteriar  search_criteriar   r   r      &&&*   r;   sortZ
IMAP4.sort  sX    
  !]2./9<"]2M''WWW&&s66r:   c                s<   R p\         '       g   V P                  R4      hV P                  '       d   V P                  R4      hW P                  9  d   V P                  R4      hVf   \
        P                  ! 4       pV P                  V4      w  r4VR8X  de   VP                  V P                  V P                  R7      V n	        V P                  P                  R4      V n        RV n        V P                  4        MV P                  R4      hV P                  W4V4      # )	r*   zSSL support missingzTLS session already establishedzTLS not supported by serverrk   Zserver_hostnamer   TzCouldn't establish TLS session)HAVE_SSLr<   rO   r>   ry   ssl_create_stdlib_contextr   wrap_socketr   rY   r   r   rx   r   )rX   ssl_contextr   r   r   r   r;   starttlsZIMAP4.starttls  s    x**233   **>??(((**:;;446K''-$;#//		@D		 0 KDI++D1DJ$(D!""$**=>>&&s66r:   c                r   )r+   r   )rX   r   Znamesr   r   r   r   r;   statusZIMAP4.status  s2    
  ''u=&&s66r:   c                s    V^ ,          VR,          3R8w  d
   RV,          pV P                  RWV4      w  rEV P                  WER4      # )r   r   r,   r   r   r   r   )rX   r   commandr   r   r   r   r;   storeZIMAP4.store  sK    
 !HU2Y9,UNE''uM&&s99r:   c                r   )r-   r   r   r   r;   	subscribeZIMAP4.subscribe  s    
 ##K99r:   c                sX    R pV P                   ! WAV.VO5!  w  rVV P                  WVV4      # )r.   r   )rX   Zthreading_algorithmr  r  r   r   r   r  r;   threadZIMAP4.thread  s5    
 ''7]_]&&s66r:   c                s   VP                  4       pV\        9   g   V P                  R V,          4      hV P                  \        V,          9  dB   V P                  RV: RV P                  : RRP	                  \        V,          4      : 24      hRpV P
                  ! W1.VO5!  w  rEVR9   d   TpMRpV P                  WEV4      # )zUnknown IMAP4 UID command: %scommand  illegal in state , only allowed in states , r/   r   )r$   r)   r.   )r   r}   r<   rF   r   r   r   )rX   r  r   r   r   r   r  r;   uidZ	IMAP4.uid  s     --/("**<wFGG::Xg..**%tzz"ii(9:< = = ''==22DD&&s66r:   c                r   )r0   r   r   r   r;   unsubscribeZIMAP4.unsubscribe  s    
 ##M7;;r:   c                r   )r1   r   r   )rX   r   r   r   r;   unselectZIMAP4.unselect  s3    	 ,,Z8ICDJy  DJr   c                s    VP                  4       pV\        9   g   V P                  3\        V&   V P                  ! V.VO5!  # r   )r   r}   rF   r   rX   r   r      &&*r;   xatomZIMAP4.xatom  s>     zz| x"jj]HTN##D0400r:   c                s   Vf   RpV P                   '       d   V P                  '       d6   \        V P                  R,          ^,          R,          \        4      '       d   V P                  P	                  W.34       M+V P                  R,          pV^,          P	                  V4        R # V P                  p Y9   d   YA,          P	                  T4       R # T.YA&   R # )Nr:   r   )
rL   rK   r   bytesr   rE   rt   rI   r   r	  )rX   r   r   r   Zurr   r;   _append_untaggedZIMAP4._append_untagged  s    ;C  (((4//3A6r:EBB$$++S%L9  //3""3'$$ 9GNN3eBGr:   c                s    V P                   P                  R 4      pV'       d3   V P                  VR,          P                  V P                  R4      4      hR# )BYEr   Nr   )rI   r	  r>   r   r_   )rX   byer|   r;   
_check_byeZIMAP4._check_bye9  sB    %%))%0**SW^^DNNIFGG r:   c                s.   V P                   \        V,          9  dI   R V n        V P                  RV: RV P                   : RRP	                  \        V,          4      : 24      hR F"  pW0P
                  9   g   K  V P
                  V K$  	  RV P
                  9   d$   V P                  '       g   V P                  R4      hV P                  4       p\        WP                  4      pVR,           V,           pV Fj  pVf   K	  \        V\        4      '       d   \        W`P                  4      p\        P                  V4      '       d   \        R4      hVR,           V,           pKl  	  V P                  pVe   R V n        \!        V4      \!        V P"                  4      J d   TpMxR pV P$                  '       d8   V\        R	\'        V4      ,          V P                  4      ,           pVR
,           pM-V\        R\'        V4      ,          V P                  4      ,           p  T P/                  T\0        ,           4       Tf   T#  T P7                  4       '       d   T P8                  T,          '       g   K1  T# X'       d   T! T P:                  4      p  T P/                  T4       T P/                  \0        4       T'       d   K   T#   \2         d   p	T P5                  RT	,          4      hR p	?	ii ; i  \2         d   p	T P5                  RT	,          4      hR p	?	ii ; i)Nr  r  r  r   r  z#mailbox status changed to READ-ONLY    z*Control characters not allowed in commandsz UTF8 (~{%s}s   )z {%s}zsocket error: %srk   NOBAD)rF   r}   rG   r<   r   rI   rM   r@   _new_tagr'  r_   r   r   _control_charsr  r   type_commandr^   r   rE   rt   _logr   r   rV   r>   rv   rH   rJ   )
rX   r   r   r   tagr   argrG   Z	literatorvals
   &&*       r;   r3  ZIMAP4._command?  s~   ::Xd^+DL**"DJJ"ii79 : :
 'C---++C0 ' $111   -- EFFmmoT>>*TzD C{H#s##C0$$S)) !MNN$;$D  ,,DLG}T]] 33#	 	$$$%W(Et~~"VVD%nG%#g,(>"OOD	7IIdTk" ?J $$&&'',,J #D$>$>?;		'"		$ 9
?  	7**/#566	72  ;jj!3c!9::;s0   K &K, K)K$$K),L7LLc                s   VR 8H  pV'       g   V P                  4         V P                  W#R7      w  rET'       g   T P                  4        TR8X  d   T P                  T: RT: RT: 24      hYE3#   T P                   d   pT P                  RT: RT: 24      hRp?iT P                   d   pT P                  RT: RT: 24      hRp?ii ; i)r   )
expect_byez	command:  => Nr/  z command error: r   )r+  _get_tagged_responser>   r<   )rX   r   r5  r   r   r   r7     &&&    r;   _command_completeZIMAP4._command_complete  s    ("OO	@11#1IIC
 OO%<**$TJKKy zz 	@**D#>??zz 	@**D#>??	@s)   A1 1CBC.C/CCc                s    V P                  4       w  rVR .8X  d   V P                  R4      h\        VR,          V P                  4      pVP	                  4       p\        VP                  4       4      V n        R # )Nz"no CAPABILITY response from serverr   )r   r<   r   r_   r   tuplesplitry   r   r   r;   rx   ZIMAP4._get_capabilities  s[    ??$4&=**ABB#b'4>>*iik!#))+.r:   c                s   VR Jdv   V P                   '       dd   V P                   P                  4       pV P                   P                  V4        V P                  4       p T P                   P                  T4       MV P                  4       pV P                  V P                  V4      '       d   V P                  P                  R4      pWPP                  9   g   V P                  RV,          4      hV P                  P                  R4      p\        W`P                  4      pV P                  P                  R4      pWg.3V P                  V&   EMRpV P                  \        V4      '       g>   V P                  V P                  V4      '       d   V P                  P                  R4      pV P                  fW   V P                  \         V4      '       d#   V P                  P                  R4      V n        R# V P                  RV,          4      hV P                  P                  R4      p\        W`P                  4      pV P                  P                  R4      pVf   RpV'       d   VR	,           V,           pV P                  V P$                  V4      '       d\   \'        V P                  P                  R
4      4      p	 T P-                  T	4      p
T P/                  YgT
34       T P                  4       pK}  V P/                  Wg4       VR9   dw   V P                  \0        V4      '       d[   V P                  P                  R4      p\        W`P                  4      pV P/                  W`P                  P                  R4      4        T#   \         d   pT P
                  ThRp?ii ; i  T P                   P                  T4       i ; i)FNr5  zunexpected tagged response: %rr2  r   Zdata2zunexpected response: %rr:   r,  r   r-  )r   Z
gettimeoutZ
settimeout	_get_lineTimeoutErrorrB   _matchrp   mogrouprH   r>   r   r_   Untagged_responserf   ContinuationrJ   rd   intrE   rt   r   r(  Response_code)rX   Zstart_timeoutZsaved_timeoutrespZerrr5  r   r   Zdat2r   r   s   &&         r;   rv   ZIMAP4._get_response  s    %$))) II002MII  /4~~' 		$$]3>>#D ;;tzz4((''--&C...jj!AD!HII''--'Cc>>*C''--'C),eD  %D ;;0$77;;t33T::77==1Dww ;;|T2215v1FD.jj!:T!ABB''--'Cc>>*C''--'C{#C3:,S ++dllC00 477==01 yy %%c;7 nn&!!#+ %%$++mS*I*I''--'Cc>>*C!!#ww}}V'<= W   5++45 		$$]3s$   N N"NN""N% %Oc                s&    V P                   V,          pVe   V P                   V V# V'       d&   RpV P                  P                  VR4      pVe   WE3# V P                  4         V P	                  4        Kw    T P
                   d   p h Rp?ii ; i)   Nr)  )rH   rI   popr+  rv   r>   rE   	print_log)rX   r5  r8  Zresultr   r*  r7  r;  r;   r:  ZIMAP4._get_tagged_response  s    ))#.F!((---11#t<?:% OO""$::  	s   &A8 8B	BBc                s    V P                  4       pV'       g   V P                  R 4      hVP                  R4      '       g   V P                  RV,          4      hVRR p T# )zsocket error: EOFr   z#socket error: unterminated line: %rNi)r   r>   ZendswithrE   rt   r4  )rX   r   r|   r;   r?  ZIMAP4._get_line-  s[    }}**011 }}W%%**BTIJJCRy
 r:   c                sL    VP                  V4      V n         T P                  RJ# )FN)matchrB  rE   rt   r   Zgroups)rX   Zcresr   r;   rA  ZIMAP4._match@  s'    
 ))A, wwd""r:   c                s    V P                   \        \        V P                  4      V P                  4      ,           pV P                  ^,           V n        RV P
                  V&   V# )rI  N)ro   r'  r   rN   r_   rH   )rX   r5  r|   r;   r0  ZIMAP4._new_tagL  sH    kkE#dkk"2DNNCCkkAo$(S!
r:   c                sj    VP                  R R4      pVP                  RR4      pRV,           R,           # )Z\z\\"z\")r   )rX   r6  r   r;   r   ZIMAP4._quoteT  s0    kk$'kk#u%Sy3r:   c                sH    V P                  WP                  ! V.VO5!  4      # r   )r<  r3  r$  r%  r;   r   ZIMAP4._simple_command\  s!    %%dMM$,F,FGGr:   c                s~    VR 8X  d   W3# W0P                   9   g   VR.3# V P                   P                  V4      p Y3# )r.  N)rI   rJ  rE   rt   )rX   r   r   r   r   s   &&&& r;   r   ZIMAP4._untagged_responsea  sK    $;8O...;&&**40 yr:   )rd   r{   rf   rs   rr   rq   r_   r   rL   rK   rQ   rO   ry   rJ   rE   rY   rM   rG   rB  r   rZ   r   rF   rH   rN   ro   rp   rI   r   r^   rw   r   )z""Z*)r   F)F)\r5   r6   r7   r8   rT   r<   r>   r@   r@  rB   
IMAP4_PORTr]   rP   rj   rS   r   r   r   r   rR   Zpropertyr   r   r   r   rU   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  r  r  r  r  r  r  r  r!  r"  r#  r&  r(  r+  r3  r<  rx   rv   r:  r?  rA  r0  r   r   r   rt   r   r4  rK  r9   __classdictcell__Z__classdict__   @r;   r   r      s    b !	 5.<.Z 8F<'7TC1 T 	.   %P!H  7"CE0:7-F77?
778?:'
%	7B5 
	7=7,	:
7F7$B@B?:77.	7::772< 1,@HPf$/\~B&	#H
	 r:   c                   sV   a  ] tR tRt o RR ltR tR tR tRR ltR t	RR	 lt
R
tV tR# )r   i  Nc                s    R VP                   9  d   VP                  R4      hVe$   VP                  '       g   VP                  R4      hW n        RV n        Wn        RV n        RV n        R# )r   z"Server does not support IMAP4 IDLENz%duration requires a socket connection)ry   r<   r   	_duration	_deadline_imap_tag_saved_state)rX   imapr   r   r;   r]   ZIdler.__init__  s^    *****ABB			**DEE!
	 r:   c                sT   V P                   p RTn         TP                  R4      T n        TP                  4       ;p'       d|   TP                  T P                  ,          '       g   K=  TP                  P                  T P                  4      w  r4TR8X  d   TP                  RT 24      hTP                  RT 24      h T P                  e,   \        P                  ! 4       T P                  ,           T n        TP"                  T n        RTn        T #   \         d
    R Tn        h i ; i)FTr   r.  zidle denied: zunexpected status response: IDLING)rU  rE   rt   rS  rL   r3  rV  rv   rH   rJ  r<   r>   rJ   ZBaseExceptiontime	monotonicrT  rF   rW  )rX   rX  rH  r   r   Zprompt   &     r;   r   ZIdler.__enter__  s   zz  "	f-DI ,,..$.''		22 $ 4 4 8 8 CICd{"jj=)?@@**'CD6%JKK >>%!^^->DN JJ
  	!&D	s   -D  D )AD D'c                s   V P                   p T P                  Tn        R Tn        \        TP                  4      ;p'       dM    TP                  '       d:   TP                  P                  ^ 4      w  rgT F  pTP                  Yh4       K  	  KK   TP                  R\        ,           4       TP                  RT P                  4      w  p	w  p
 R #   \         d    T'       g   h  R # i ; i)Fs   DONEr   )rU  rE   rt   rW  rF   rL   r   rK   rJ  r(  r   r   r<  rV  rV   )rX   Zexc_typeZexc_valZexc_tbrX  Z	leftoversr   r   Zdatumr  Zmsgs   &&&&       r;   r   ZIdler.__exit__  s    zz&&
 # D001191&&& 0044Q7	!E))#5 "	IIgn% 226499EMFES 	  	  		s   >C C(#C('C(c                r   r   r3   rg   rh   r;   __iter__ZIdler.__iter__  r   r:   c                s   V P                   pVP                  R 8w  d   VP                  R4      hVP                  '       d   VP                  P	                  ^ 4      p T#  Te   T^ 8:  d   T# \        T4      p TP                  T4       TP                  P	                  ^ 4      p T#   \        P                   d     Tu # i ; i)rY  z_pop() only works during IDLE)rU  rF   r<   rK   rJ  rE   rt   floatrv   r   rB   )rX   r[   ZdefaultrX  rH  r   r;   _popZ
Idler._pop  s    $ zz::!**<==''++A.DK !|GnG	w' ##''* %% 	N	s   9B( (CCc                s    V P                   pV P                  f   R pM&V P                  \        P                  ! 4       ,
          pV P                  V4      w  r4V'       g    \        hW43# r   )	rU  rS  rT  rZ  r[  r_  rE   rt   StopIteration)rX   rX  r[   r   r   s   &    r;   __next__ZIdler.__next__,  sS    zz>>!Gnnt~~'77GIIg&	yr:   c              #  s   "   V P                   P                  '       g   V P                   P                  R 4      h \        V 4      x  T P                  TR4      ;p'       d   Tx  K   R#   \         d     R# i ; i5i)z$burst() requires a socket connectionN)rU  r   r<   Znextr`  r_  )rX   Zintervalr   r   r;   burstZIdler.burst<  sn      zz**""#IJJ	t* ))Hd33h3N 4  		s.   8A<A* A<"A<*A95A<8A99A<)rT  rS  rU  rW  rV  r   ))rC   N)g?)r5   r6   r7   r8   r]   r   r   r]  r_  ra  rb  r9   rP  rQ  rR  r;   r   r     s0     
!)V$L0d  r:   r   c                   sP   a  ] tR tRt o R]3RRRR/R lltR tR]R3R ltR	tV t	R# )
	IMAP4_SSLiU  rC   r  Nr[   c               sp    Vf   \         P                  ! 4       pW0n        \        P	                  WW$4       R # r   )r  r  r  r   r]   )rX   rY   rZ   r  r[   s   &&&$$r;   r]   ZIMAP4_SSL.__init__f  s*    "!88:*NN4t5r:   c                sz    \         P                  W4      pV P                  P                  VV P                  R 7      # )r  )r   r   r  r  rY   )rX   r[   r   r   r;   r   ZIMAP4_SSL._create_socketm  s;    ''6D##//@D		 0 K Kr:   c                s2    \         P                  WW#4       R # r   )r   rR   rW   r\   r;   rR   ZIMAP4_SSL.openr  s     JJt41r:   )r  )
r5   r6   r7   r8   IMAP4_SSL_PORTr]   r   rR   r9   rP  rQ  rR  r;   rc  rc  U  s:     " !# 	6$(	626	6	K
 ^T 	2 	2r:   rc  c                   sH   a  ] tR tRt o R tR
R ltR tR tR tR t	R	t
V tR# )r   i}  c                s<    Wn         \        P                  V 4       R # r   )r  r   r]   )rX   r  r   r;   r]   ZIMAP4_stream.__init__  s    tr:   Nc           	     s@   R V n         R V n        R V n        R V n        \        P
                  ! V P                  \        \        P                  \        P                  RRR7      V n	        V P                  P                  V n        V P                  P                  V n        R # )NT)ZbufsizestdinstdoutZshellZ	close_fds)rY   rZ   r   r   
subprocessZPopenr  r   ZPIPEr   re  	writefilerf  readfilerW   r\   r;   rR   ZIMAP4_stream.open  sq    
 			
!'''//*//$( ++++r:   c                s8    V P                   P                  V4      # r   )ri  r   )rX   r   r   r;   r   ZIMAP4_stream.read  s    }}!!$''r:   c                s6    V P                   P                  4       # r   )ri  r   rg   rh   r;   r   ZIMAP4_stream.readline  s    }}%%''r:   c                sp    V P                   P                  V4       V P                   P                  4        R # r   )rh  ZwriteZflushr   r   r;   r   ZIMAP4_stream.send  s$    T"r:   c                s    V P                   P                  4        V P                  P                  4        V P                  P	                  4        R # r   )ri  r   rh  r   Zwaitrg   rh   r;   rU   ZIMAP4_stream.shutdown  s2    r:   )r   r  rY   rZ   r   ri  r   rh  )NNN)r5   r6   r7   r8   r]   rR   r   r   r   rU   r9   rP  rQ  rR  r;   r   r   }  s(     
, (
(
 r:   c                   s8   a  ] tR tRt o R tR tR tR tRtV t	R# )r   i  c                s    Wn         R # r   r   )rX   Zmechinstr   r;   r]   Z_Authenticator.__init__  s    	r:   c                sp    V P                  V P                  V4      4      pVf   R# V P                  V4      # )Ns   *)r   r   r   )rX   r   Zretr   r;   r   Z_Authenticator.process  s0    iiD)*;{{3r:   c                s   R p\        V\        4      '       d   VP                  R4      pV'       dU   \        V4      ^08  d   VR,          pVR,          pMTpR p\        P
                  ! V4      pV'       g   KO  W$RR ,           pK\  V# )r:   ri   :N0   N:rk  NNNr   )r   r   r   r   binasciiZ
b2a_base64)rX   inpZoupZtZer   r;   r   Z_Authenticator.encode  su     c3**W%C3x"}H#h##A&AqcrFl
r:   c                sB    V'       g   R # \         P                  ! V4      # )r:   )rl  Z
a2b_base64)rX   rm  r   r;   r   Z_Authenticator.decode  s    ""3''r:   rj  N)
r5   r6   r7   r8   r]   r   r   r   r9   rP  rQ  rR  r;   r   r     s      0( (r:   r   z0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Decr   :rI  NNc           	      s   \         P                  V 4      pV'       g   R # \        VP                  R4      ,          pVP                  R4      p\	        VP                  R4      4      p\	        VP                  R4      4      p\	        VP                  R4      4      p\	        VP                  R4      4      p\	        VP                  R4      4      p\	        VP                  R4      4      p	\	        VP                  R	4      4      p
V	^<,          V
,           ^<,          pVR
8X  d   V) pWRWFWxRRR3	p\
        P                  ! V4      V,
          p\        P                  ! V4      # )Nmonzonendayyearhourminseczonehzonems   -r   )	InternalDaterL  Mon2numrC  rF  calendarZtimegmrZ  	localtime)rH  rB  rn  ro  rp  rq  rr  rs  rt  ru  rv  ZzoneZttutcs   &             r;   Internaldate2tupler|    s    
		D	!B
"((5/
"CHHWE
bhhuo
Crxx Drxx D
bhhuo
C
bhhuo
C!"E!"E "Hub D}u
S"b"	5B
//"

$C>>#r:   c                 s    R pRp\        \        V 4      4      p V '       d#   \        V ^4      w  rW#V^,            V,           pK*  V# )r:   s   ABCDEFGHIJKLMNOP)rF  ZabsZdivmod)Znumr7  ZAPZmodr   r;   rm   rm     sB     C'r
c#h-C
#r?SUmc!Jr:   c                 s    \         P                  V 4      pV'       g   R# \        VP                  R 4      P	                  4       4      # )r   r3   )FlagsrL  r=  rC  r>  )rH  rB  r|   r;   
ParseFlagsr~    s7     
T	B	'"((*++r:   c                 s   \        V \        \        34      '       d5   \        P                  ! V \
        P                  4      P                  4       pM\        V \        4      '       d6    V P                  p\!        VR7      p\        V R,          R\        V4      / pMl\        V \        4      '       d   V P"                  f   \%        R4      hT pM:\        V \&        4      '       d   V ^ ,          V R,          3R8X  d   V # \%        R4      hRP)                  \*        VP,                  ,          4      pVP/                  V4      #   \         d    \        P                  '       dm   T ^,          pTR8X  d2   \        P                  ! \        P                  ! T 4      4      ^,          p\        P
                  \        P                  3T,          ) p ELX\        P
                  ) p ELli ; i)	i   )Zseconds:Ni   Ntzinfozdate_time must be awarezdate_time not of a known typez"%d-{}-%Y %H:%M:%S %z"r   )rN  rN  )r   rF  r^  r    Zfromtimestampr   r{  Z
astimezoner=  Z	tm_gmtoffr   rZ  Zdaylightrz  ZmktimeZaltzoner   r  r   r   ZformatMonthsZmonthZstrftime)r   ZdtZgmtoffZdstZdeltaZfmtr\  r;   r   r      sh    )c5\**##I$,LL22<*, 		Iu	%	%		(((F &)y}=Xe_=	Ix	(	(#677	Is	#	#1im(D	(Q899
"
)
)&*:
;C;;s'  	(}}}l"9..Y)?@CC==$,,7<<--	(s   (D? ? G! A)G!G! G!Z__main__zd:s:z-dz-szIMAP password for z on Z	localhostz: zJFrom: %(user)s@localhost%(lf)sSubject: IMAP4 test%(lf)s%(lf)sdata...%(lf)sr   ZlfZ
r   
/tmp/yyz 2r   r   r!  c                 s    \         P                  V : R V: 24       \        \         V 4      ! V!  w  r#\         P                  V : RV: R V: 24       VR8X  d
   V^ ,          hV# )r   r9  r.  )Mrt   r~   )cmdr   r   r   r   r;   runr    sL    	3%&1c?D)	c3/0$;c!f
r:   zPROTOCOL_VERSION = %szCAPABILITIES = z.*"([^"]+)"$r   z%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
)r   r   r|  rm   r~  r   )Z	IMAP4REV1r   )r   r  )rl   )rl   r   r  r   )r  )r   r3   )rC   )r   )
/tmp/xxx 1)r  )r  z/tmp/yyy)r   r  )r   )z/tmpzyy*)r
  r  )r  )NZSUBJECTZtest)r   )1z(FLAGS INTERNALDATE RFC822))r  )r  ZFLAGSz
(\Deleted))r   r3   )r   r3   )r   r3   )r   r3   )r
  r3   )r   )ZUIDVALIDITY)r!  )r$   ZALL)r   )r  )r   r3   )z/tmp/zyy%r   )Wru   rl  r   rn   r`   r   rg  r   rZ  ry  r    r   r   Zior   r  r  ZImportErrorZ__all__r   rD   rO  rd  rz   r   r}   ra   rE  r}  rw  rc   rd   r   rG  rD  rf   rb   re   r1  r   r   rc  r   r   r   r>  r  Z	enumerater   rx  r|  rm   r~  r   r5   ZgetoptZgetpassZargvZoptlistr   r<   r7  Zstream_commandZoptrF  rY   ZgetuserZUSERZPASSWDZ	test_mesgZ	test_seq1Z	test_seq2r  r  rF   rt   r{   ry   r  ZmlrL  rB  rC  Zpathr   r!  Zprint)ZnrM  s   00r;   <module>r     s  0  K K K K K 2 2 "H8
 	
( 
-
,-
 	-
 	A	-

 	-
 	-
 	-
 	,-
 	,-
 	,-
 	
-
 	,-
 	-
 	-
 	,-
  	,!-
" 	,#-
$ 	,%-
& 	,'-
( 	,)-
* 	,+-
, 	--
. 	A/-
0 	,1-
2 	3-
4 	,5-
6 	A7-
8 	9-
: 		;-
< 	,=-
> 	?-
@ 	,A-
B 	,C-
D 	,E-
F 	,G-
H 	,,,Y-
b zz01


45zz   **+RXX
6
**^
$ 

DEJJGH **;RXXG "J ./F FR(~ ~B #2E #2J NN;55 5r*( *(X 
<	A	A#	F&/r
&;
<&;da188:ac>&;
<F	,%R z chhrlF; NC$;HED[ N4 1  7D??D__tTEXEX[EXYZF\`fgkmqrv_wwItVn*dD)45)3,I$ !dD),-I)^,AdA77f!"I	'!*<*<<=	q~~78!HCTN " f./B/2.B"((1+4B$4'"	 0 "HCc4.CDz77b'--/CBPR S " 	 { Q9  HD6 =` << Bj	   
hhqk 
 	sB   Q+ 8#Q;<'R R% %ER% +	Q87Q8R"RR"%3S