f3t ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Zddl Z ddl Z ddl m Z  ddlZn #e$rdZYnwxYwgdZejdZGddZGddeZGd d eZGd d eZGd deZGddeZGddeZGddeZGddejjZGddeZGddeZGddeZGddeZ Gdd eZ!Gd!d"eZ"Gd#d$Z#Gd%d&e#Z$d8d(Z%d)Z&d*Z'd+Z(d,Z)d-Z*Gd.d/e+Z,Gd0d1e,Z-Gd2d3e,Z.Gd4d5e,Z/Gd6d7e,Z0dS)9N) GenericAlias)MailboxMaildirmboxMHBabylMMDFMessageMaildirMessage mboxMessage MHMessage BabylMessage MMDFMessageErrorNoSuchMailboxError NotEmptyErrorExternalClashError FormatErrorasciiceZdZ d#dZdZdZdZdZdZd$d Z d Z d Z d Z d Z dZdZdZdZdZdZdZdZdZdZdZd$dZdZd$dZdZdZdZdZd Z d!Z!d%d"Z"e#e$Z%dS)&rNTc tjtj||_||_dSN)ospathabspath expanduser_path_factoryselfrfactorycreates ./opt/alt/python311/lib64/python3.11/mailbox.py__init__zMailbox.__init__%s5,W__RW%7%7%=%=>>  c" tdNz&Method must be implemented by subclassNotImplementedErrorr messages r#addz Mailbox.add*s2!"JKKKr%c" tdr'r(r keys r#removezMailbox.remove.sK!"JKKKr%c0||dSr)r0r.s r# __delitem__zMailbox.__delitem__2s Cr%cV ||dS#t$rYdSwxYwr)r0KeyErrorr.s r#discardzMailbox.discard5sD5  KK         DD s  ((c" tdr'r(r r/r+s r# __setitem__zMailbox.__setitem__<sL!"JKKKr%cT ||S#t$r|cYSwxYwr) __getitem__r4)r r/defaults r#getz Mailbox.get@sBG ##C(( (   NNN s  ''c |js||Stj||5}||cdddS#1swxYwYdSr)r get_message contextlibclosingget_file)r r/files r#r:zMailbox.__getitem__GsK} +##C(( (#DMM#$6$677 +4}}T** + + + + + + + + + + + + + + + + + +sA''A+.A+c" tdr'r(r.s r#r>zMailbox.get_messageOsB!"JKKKr%cv tj||Sremailmessage_from_bytes get_bytes as_stringr.s r# get_stringzMailbox.get_stringSs2 *'s(;(;<<FFHHHr%c" tdr'r(r.s r#rHzMailbox.get_bytesZsF!"JKKKr%c" tdr'r(r.s r#rAzMailbox.get_file^sD!"JKKKr%c" tdr'r(r s r#iterkeyszMailbox.iterkeysbs+!"JKKKr%cF t|Sr)listrOrNs r#keysz Mailbox.keysfs$DMMOO$$$r%c#vK |D] } ||}n#t$rYwxYw|V!dSrrOr4r r/values r# itervalueszMailbox.itervaluesjse3==??  C S     KKKK    $ 11c*|Sr)rWrNs r#__iter__zMailbox.__iter__ss   r%cF t|Sr)rQrWrNs r#valueszMailbox.valuesvs:DOO%%&&&r%c#zK |D]"} ||}n#t$rYwxYw||fV#dSrrTrUs r# iteritemszMailbox.iteritemszsm<==??  C S     ,       rXcF t|Sr)rQr^rNs r#itemsz Mailbox.itemssGDNN$$%%%r%c" tdr'r(r.s r# __contains__zMailbox.__contains__sG!"JKKKr%c" tdr'r(rNs r#__len__zMailbox.__len__s8!"JKKKr%c` |D]}||dSr)rRr5r.s r#clearz Mailbox.clears;"99;;  C LL      r%cj ||}n#t$r|cYSwxYw|||Sr)r4r5)r r/r;results r#popz Mailbox.popsPA #YFF   NNN  S s  c |D]}|||fcStd)NzNo messages in mailbox)rOrir4r.s r#popitemzMailbox.popitemsFD==?? 5 5C#' ' ' '344 4r%c t|dr|}n't|dr|}n|}d}|D]\}} |||< #t$rd}YwxYw|rtddS)Nr^r`FTzNo message with key(s))hasattrr^r`r4)r argsourcebad_keyr/r+s r#updatezMailbox.updatesB 3 $ $ ]]__FF S' " " YY[[FFF"  LC #S       5344 4 5 5sA A-,A-c" tdr'r(rNs r#flushz Mailbox.flushs4!"JKKKr%c" tdr'r(rNs r#lockz Mailbox.locks!"JKKKr%c" tdr'r(rNs r#unlockzMailbox.unlocks1!"JKKKr%c" tdr'r(rNs r#closez Mailbox.closes*!"JKKKr%ch |dS#t$rtdwxYw)Nrz?String input must be ASCII-only; use bytes or a Message instead)encode UnicodeError ValueErrorr*s r#_string_to_byteszMailbox._string_to_bytessK 2>>'** * 2 2 2122 2 2s1Fc t|tjjrt j}tj||d}||| d| }| dt}| ||jr6|ts| tdSdSdSt|t t"tjfrt|tjr/t'jdt*d|}t|t r||}|r| dd}| dt}| ||jr6|ts| tdSdSdSt1|dr-t1|dr"t'jd t*d|j}d} |}|d r|dd dz}n"|d r |dddz}|snW|r"|dr d|ddz}| dt}| ||}|jr8|r8|ts | tdSdSdSdSt9dt;|z)Nr 8Use of StringIO input is deprecated, use BytesIO insteads From s >From readbufferDUse of text mode files is deprecated, use a binary mode file insteadT  From s>From Invalid message type: %s) isinstancerFr+r ioBytesIO generatorBytesGeneratorflattenseekrreplacelinesepwrite_append_newlineendswithstrbytesStringIOwarningswarnDeprecationWarninggetvaluer~rmrreadline startswith TypeErrortype) r r+target mangle_from_rgendatalastlinelines r# _dump_messagezMailbox._dump_messages3 gu}4 5 51 HZ\\F/00qIIC KK KKNNN;;==D<<w//D LL   # &DMM',B,B & W%%%%% & & & &#ubk!: ; ;& H'2;// - *+=qBBB!**,,'3'' 9//88 C!//*kBBooeW55G LL ! ! !# &G,<,rJrHrArOrRrWrZr\r^r`rbrdrfrirkrqrsrurwryr~rr classmethodr__class_getitem__r%r#rr"sE4    LLLLLLLLL+++LLLIIILLLLLLLLL%%%!!!'''&&&LLLLLL 5555555"LLLLLLLLLLLL222O4H4H4H4Hl$ L11r%rceZdZ dZddZdZdZdZdZd Z d Z d Z d Z d Z dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdS)r:NTct t||||tj|jdtj|jdtj|jdd|_tj|jsb|rLtj|jd|j D]}tj|dnt|ji|_ ddd|_ d|_ d|_dS) Ntmpnewcur)rrrr)rrg?)rr$rrjoinr_pathsexistsmkdirr\r_toc _toc_mtimes _last_read _skewfactor)r dirnamer!r"rs r#r$zMaildir.__init__s,w8887<< E227<< E227<< E22 w~~dj)) 5 5U+++ K..00**DHT5))))*)444 #$Q//r%c |} |||n<#t$r/|t j|jwxYwt|t|tr>| }|j | z}||j krd}nd}d}tj |j|j d}tj |j|||z}t|trPt j|jtj |j|f t j|j|t j|jn1#t,t.f$rt j|j|YnwxYwnS#t2$rF}t j|j|jt4jkrt9d|zd}~wwxYw|S)Nrrz$Name clash with existing message: %s) _create_tmpr BaseExceptionryrr0name _sync_closerr get_subdircolonget_inforbasenamesplitrrutimegetatimeget_datelinkAttributeErrorPermissionErrorrenameOSErrorerrnoEEXISTr)r r+tmp_filesubdirsuffixuniqdestes r#r,z Maildir.add$sV2##%%    w 1 1 1 1    NN    Ihm $ $ $   H g~ . . ''))FZ'"2"2"4"44F##FFw ..44TZ@@Cw||DJv >> g~ . . L HX]g&&x}55w7G7G7I7IJ L L L  ) t,,, (-((((#O4 / / / (-..... /    Ihm $ $ $w%,&&()O+/*0111   s@.9A'"G<H+HHHH IAIIc tjtj|j||dSr)rr0rrr_lookupr.s r#r0zMaildir.removeNs9K "',,tz4<<+<+<==>>>>>r%cd ||dS#ttf$rYdSwxYwr)r0r4FileNotFoundErrorr.s r#r5zMaildir.discardRsJ5  KK     +,    DD s //c ||}||}||}t|tr|}n|}tj|}|j|vr)|j||jdz}nd}| |tj |j |} tj |j |||z} t|trFt j | tj | |ft j| | dS)Nrr)rr,rr rrrrrr5rrrrrr) r r/r+ old_subpathtemp_key temp_subpathdominant_subpathrrtmp_pathnew_paths r#r8zMaildir.__setitem__ZsVLll3'' 88G$$||H-- g~ . . ++   + !122 :) ) )Z"2"8"8"D"DR"HHFFF S7<< L997<< FC&LAA g~ . . G HXg&&x00'2B2B2D2DE G G G (H%%%%%r%c ||}ttj|j|d5}|jr||}nt|}dddn #1swxYwYtj|\}}| ||j |vr3| ||j d| tj tj|j||S)Nrbr)ropenrrrrrr r set_subdirrset_infoset_dategetmtime)r r/subpathfmsgrrs r#r>zMaildir.get_messageusJB,,s## "',,tz733T : : (a} (mmA&&$Q''  ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( w}}W--  v :   LLDJ//3 4 4 4 RW%%bgll4:w&G&GHHIII s -BB Bc ttj|j||d5}|tdcdddS#1swxYwYdS)Nrr) rrrrrrrrrr r/rs r#rHzMaildir.get_bytess@ "',,tz4<<+<+<==t D D 46688##GU33 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s-BB Bc ttj|j||d}t |S)Nr)rrrrrr _ProxyFilers r#rAzMaildir.get_files>D dj$,,s*;*;< |||jvSr)rrr.s r#rbzMaildir.__contains__sG dir%cT |t|jSr)rlenrrNs r#rdzMaildir.__len__s 8 49~~r%c dSrrrNs r#rsz Maildir.flushs 0 r%c dSrrrNs r#ruz Maildir.locks r%c dSrrrNs r#rwzMaildir.unlocks 1r%c dSrrrNs r#ryz Maildir.closes *r%c@ g}tj|jD]}t|dkrk|ddkr_tjtj|j|r||dd|S)Nr.)rlistdirrrrisdirrappendr rhentrys r# list_folderszMaildir.list_folderss,Z ++ ) )E5zzA~~%(c//w}}RW\\$*e<<==#2 eABBi((( r%c~ ttj|jd|z|jdS)NrFr!r")rrrrrrr folders r# get_folderzMaildir.get_folders<=rw||DJf ==#}#%%% %r%c tj|jd|z}t ||j}tj|d}tj|s?tjtj|tj tj zd|S)Nrr! maildirfolder) rrrrrrrryrO_CREATO_WRONLY)r r rrhmaildirfolder_paths r# add_folderzMaildir.add_foldersLw||DJf 55t}555W\\$@@w~~011  HRW/bk1I    r%c tj|jd|z}tjtj|dtjtj|dzD]3}t |dks |ddkrt d|z4tj|D]f}|dkr^|dkrX|dkrRtjtj||rt d|d |gtj|d D]t\}}}|D]4}tj tj||5|D]4}tj tj||5utj |dS) NrrrrrzFolder contains message(s): %srzFolder contains subdirectory 'z': F)topdown) rrrrrrrrwalkr0rmdir)r r rrrootdirsfiless r# remove_folderzMaildir.remove_folders;w||DJf 55Z T5 9 9::Z T5 9 9::; O OE5zzA~~qS#$Dv$MNNN"1Z%% 5 5E~~%5..Ue^^w}}RW\\$66776D#m%+VVUU%4555!#u!=!=!= 4 4 D$ 5 5 "',,tU334444 4 4dE223333 4 r%cb tj}tjtj|jdD]b}tj|jd|}|tj|z dkrtj|cdS)Nri@)timerrrrrrr0)r nowrrs r#cleanz Maildir.cleans(ikkZ TZ ? ?@@  E7<< E599DRW%%d+++f44 $  r%rc x tj}tj}d|vr|dd}d|vr|dd}t |dt |dzdzdt jd tjd | }t j |j d |} t j |nG#t$r:txjdz c_ t|cYS#t$rYnwxYwYnwxYwt!d |z) N/z\057rz\072z.Mrg.APQrrz&Name clash prevented file creation: %s)rsocket gethostnamerintrgetpidr_countrrrstatr_create_carefullyFileExistsErrorr)r r hostnamerrs r#rzMaildir._create_tmpsTKikk%'' (??''W55H (??''W55H$'HHHHc#'C-.@.@.@.@")++++$+NNNHH>w||DJt44  GDMMMM     NNa NN (....."      !!I!%"&'' 's6C##D'DD' D!D' D!!D'&D'c tj|jz d|jzkrWd}|jD]I}tj|j|}||j|krd}||j|<J|sdSi|_|jD]}|j|}t j |D]}tj ||}tj |rB| |j d}tj |||j|<tj|_dS)NFTr)rrrrrrrrrrrrrr)r refreshrmtimerrprs r#rzMaildir._refreshsH/ 9;; (1t/?+? ? ?G* 1 1((V)<==4+F333"G+0 ((  & > >F;v&DD)) > >GLLu--7==##{{4:..q1"$',,vu"="= $  > )++r%cb tjtj|j|j|r |j|Sn#t $rYnwxYw| |j|S#t $rt d|zdwxYwNNo message with key: %s)rrrrrrr4rr.s r#rzMaildir._lookup&sK w~~bgll4:ty~FFGG &y~% &    D   F9S> ! F F F4s:;; E FsAA A+*A+ BB.c t|ds||_ |t|jS#t$rYdSt $rY4wxYw)N _onetime_keys)rmrOr8next StopIterationr4rNs r#r9z Maildir.next4s>t_-- 1!%D   D!34455    tt    sA A  A A r)rrrrr$r,r0r5r8r>rHrArOrbrdrsrurwryrr rrr!r*rrrr9rr%r#rr s( E((((T???&&&6   444         %%% &   F'''0"&"&"&H F F F     r%rcteZdZ ddZdZdZdZdZdZd Z d Z d Z d Z d Z dZdZdZddZdZdS)_singlefileMailboxNTc t|||| t|jd}n#t$r}|jt jkr,|rt|jd}nJt|j|jt jt j fvrt|jd}nYd}~nd}~wwxYw||_ d|_ d|_ d|_ d|_d|_d|_dS)Nrb+zwb+rrF)rr$rrrrENOENTrEACCESEROFS_filer _next_key_pending _pending_sync_locked _file_length)r rr!r"rrs r#r$z_singlefileMailbox.__init__Ds/tWf555 TZ''AA   w%,&&9TZ//AA,TZ888U\5;777T**    "  s6 CA7B<<Cc ||||j|j<|xjdz c_d|_|jdz S)NrT)r_append_messagerrCrEr*s r#r,z_singlefileMailbox.add[sU2 $($8$8$A$A $.! !"~!!r%cP |||j|=d|_dSr)rrrDr.s r#r0z_singlefileMailbox.removees+K S IcN r%cz |||||j|<d|_dSr)rrIrrDr7s r#r8z_singlefileMailbox.__setitem__ks;L S--g66 # r%c#rK ||jEd{VdSr)rrrRrNs r#rOz_singlefileMailbox.iterkeysqs@+ 9>>###########r%c> |||jvSr)rrr.s r#rbz_singlefileMailbox.__contains__vsG dir%cT |t|jSr)rrrrNs r#rdz_singlefileMailbox.__len__{s 8 49~~r%cP |jst|jd|_dSdSr)rF _lock_filerBrNs r#ruz_singlefileMailbox.locks4| tz " " "DLLL  r%cP |jrt|jd|_dSdSNF)rF _unlock_filerBrNs r#rwz_singlefileMailbox.unlocks41 < !  $ $ $ DLLL ! !r%c : |js$|jrt|jd|_dS|jdd|j}||jkrtd|j|fzt|j } i}| |t|j D]}|j |\}}|j||||} |jt!d||jz }|sn||[||f||<||||_n3#|t)j|jxYwt/||jt)j|j j} t)j|j|  t)j|j|j nH#t8$r;t)j|j t)j|j|j YnwxYwt;|j d|_||_ d|_d|_|jrt?|jddSdS) NFrr0z4Size of mailbox file changed (expected %i, found %i)Tr>)dotlock) rDrE _sync_flushrBrtellrGr_create_temporaryr_pre_mailbox_hooksortedrrR_pre_message_hookrminr_post_message_hookryrr0rrr+st_modechmodrr-rrFrP) r cur_lennew_filenew_tocr/startstop new_startrmodes r#rsz_singlefileMailbox.flushs0} ! +DJ'''%*" F 1*//## d' ' '$&?&*&7%A&BCC C%TZ00 G  " "8 , , ,dinn..// 2 2"in t &&&&&x000$MMOO +!Z__S15 8I8I1I.K.KLLF!NN6*** + !*8==??; ''1111 ( D    NN    Ihm $ $ $ H wtz""* %%% 1 IhmTZ 0 0 0 0 1 1 1 Idj ! ! ! IhmTZ 0 0 0 0 0 1$*e,,   " < 2 tz5 1 1 1 1 1 1 2 2s D6G0H%JAK  K c dSrrr rs r#rZz$_singlefileMailbox._pre_mailbox_hook :r%c dSrrris r#r\z$_singlefileMailbox._pre_message_hooks ;r%c dSrrris r#r^z%_singlefileMailbox._post_message_hookrjr%c | |jr||jdS#|jwxYw# |jr||jw#|jwxYwxYwr)rsrFrwrBryrNs r#ryz_singlefileMailbox.closes* # JJLLL #<"KKMMM   """""   """"  #<"KKMMM   """"   """"s.A,AA),C.B# C#B>>Cc |j||/ |j|S#t$rtd|zdwxYwdSr5)r _generate_tocr4r.s r#rz_singlefileMailbox._lookupsr5 9     ? Jy~% J J J83>??TI J ?s -A c8 |jdd|j}t|jdkr!|js||j ||j||}| |jn)#t$r|j |wxYw|j |j|_ |S)Nrr0)rBrrXrrrDrZr\_install_messager^rtruncatersrG)r r+beforeoffsetss r#rIz"_singlefileMailbox._append_messagesI 1"" ty>>Q  t}   " "4: . . .   " "4: . . .++G44G  # #DJ / / / /    J   ' ' '    JOO--s 0A B::&C rr)rrrr$r,r0r8rOrbrdrurwrsrZr\r^ryrrIrr%r#r<r<As !!!!."""  $$$        !!! >2>2>2@ # # #JJJJr%r<c8eZdZ dZdZd dZd dZd dZdZdS) _mboxMMDFTc ||\}}|j||jt dd}|j||jz }| |t d}| || |dd|S)Nr%rrr) rrBrrrrdecoderrX_message_factory set_unixfromset_from)r r/rdre from_linestringrs r#r>z_mboxMMDF.get_message sBll3'' t J''))11'3??FFwOO  (9(9!9::##FNN7E$B$BCC ### Yqrr]### r%Fc| tj||||S)N)unixfromrE)r r/from_s r#rJz_mboxMMDF.get_strings;A' NN3 & &(((1 5 (A(A Br%c< ||\}}|j||s|j|j||jz }|tdSNr)rrBrrrrXrr)r r/rrdrer}s r#rHz_mboxMMDF.get_bytessAll3'' t  " J   ! ! ! (9(9!9::~~gu---r%c ||\}}|j||s|jt |j|j|Sr)rrBrr _PartialFilerX)r r/rrdres r#rAz_mboxMMDF.get_file"sjDll3'' t  " J   ! ! !DJ (9(94@@@r%c d}t|tr||}t|trM|dr8|d}|dkr|d|}||dzd}n|}d}nt|t r-|d}d|z}nJt|tj j r+| }||d}|:dtjtjz}|j}|j|t&z|||j|j|j}||fS)Nrrrrr%rsFrom MAILER-DAEMON )rrr~rrfind_mboxMMDFMessageget_fromr{rFr+r get_unixfromrasctimegmtimerBrXrrr _mangle_from_)r r+r|newlineauthorrdres r#rqz_mboxMMDF._install_message*s? gs # # 5++G44G gu % % 6'*<*rJrHrArqrr%r#rvrvs~"M   BBBB ....AAAAr%rvc,eZdZ dZdZddZdZdZdS)rTNcZ t|_t||||dSr)r ryrvr$rs r#r$z mbox.__init__P-) +4w77777r%c< |tdSrrrris r#r^zmbox._post_message_hookUs: r%cF gg}}d}|jd |j}|j}|drzt |t |krB|r+||t tz n||||d}nU|sC|r+||t tz n||n|tkrd}nd}ttt|||_ t |j |_ |j|_ dS)NFrTr)rBrrXrrrrrdict enumerateziprrCrG)r startsstopslast_was_emptyline_posrs r#rozmbox._generate_tocYs{>B  'z((H:&&((Dx(( 'u::F ++%/ XG %<====  X... h'''!& '!+LLCLL!89999LL***!%!&/ '03vu#5#56677 TY JOO--r%r)rrrrrr$r^rorr%r#rrGsU!MO8888 .....r%rc*eZdZ ddZdZdZdZdS)r NTcZ t|_t||||dSr)rryrvr$rs r#r$z MMDF.__init__~rr%cB |dtzdSNrris r#r\zMMDF._pre_message_hooks#; #g-.....r%cR |tdztzdSrrris r#r^zMMDF._post_message_hooks(: --788888r%c0 gg}}|jdd} |}|j}|j}|dt zr|| |}|j}|j}|dt zkr+||tt z n|s||nn|snttt|||_ t|j |_ |jdd|j|_ dS)NrTrr0)rBrrrXrrrrrrrrrCrG)r rrnext_posrrs r#rozMMDF._generate_tocsw>B  H:&&((Dz((H2W<==  h''' 'H:..00D#z00H2W<<< XG %<===! X...  # $3vu#5#56677 TY 1 JOO--r%r)rrrr$r\r^rorr%r#r r {sX8888 ///999.....r%r ceZdZ ddZdZdZdZdZdZd Z d Z d Z d Z d Z dZdZdZdZdZdZdZdZdZdZdZdS)rNTc t||||tj|js|rtj|jdtjtjtj |jdtj tj ztj zdnt|jd|_dS)Nr .mh_sequencesiF)rr$rrrrrryrrrO_EXCLrrrFrs r#r$z MH.__init__s(tWf555w~~dj)) 5 5U+++dj/!J!J!#bi!7"+!EuNNOOOO)444 r%c |}t|dkrd}nt|dz}tj|jt|}t|}d} |j rt| | ||nJ#t$r=|j rt|t|d}tj|wxYwt!|t"r||||j rt|n#|j rt|wwxYw|st|n#|st|wwxYw|S)NrrFT)rRrmaxrrrrrr,rFrPrrrSrr0rr _dump_sequences)r r+rRnew_keyrrcloseds r#r,zMH.adds2yy{{ t99>>GG$ii!mG7<< CLL99 h ' ' | 1  $ &&w2222$|($QNNN!FIh'''gy11;((':::<$ OOO<$ OOOO$ A A s7E+B10D=1AC88.D=&E+=EE++E?cR tj|jt |} t |d}|tj|dS#t$r-}|j tj krtd|zd}~wwxYwNr>r6) rrrrrrryr0rrr?r4)r r/rrrs r#r0z MH.removesKw||DJC11 T5!!A GGIII IdOOOOO   w%,&&83>???  sA// B&9(B!!B&c tj|jt |} t |d}n:#t $r-}|jtjkrtd|zd}~wwxYw |j rt| tj tj|tj tjz|||t!|t"r||||j rt'|n#|j rt'|wwxYwt)|dS#t)|wxYwr)rrrrrrrrr?r4rFrPryrO_TRUNCrrr rrSr)r r/r+rrrs r#r8zMH.__setitem__sXLw||DJC11 T5!!AA   w%,&&83>???   | 1  $r{RZ'?@@AAA""7A...gy117((#666<$ OOO<$ OOOO$ NNNNNKNNNNs<A A=(A88A=EA?D.E.EEE,c |jrAttj|jt |d}n@ttj|jt |d}n:#t$r-}|jtj krtd|zd}~wwxYw|5|jrt| t|}|jrt|n#|jrt|wwxYwdddn #1swxYwY|D]\}}||vr|||S)Nr>rr6)rFrrrrrrrrr?r4rPr rS get_sequencesr` add_sequence)r r/rrrrkey_lists r#r>zMH.get_messagesB | Cdj#c((;;UCCdj#c((;;TBB   w%,&&83>???    $ $| 1  $ll<$ OOO<$ OOOO$  $ $ $ $ $ $ $ $ $ $ $ $ $ $ $#002288:: ' 'ND(h  &&& sBBB C(B>>CD. D/D.DD..D25D2c |jrAttj|jt |d}n@ttj|jt |d}n:#t$r-}|jtj krtd|zd}~wwxYw|5|jrt| | td|jrt|cdddS#|jrt|wwxYw#1swxYwYdS)Nr>rr6r)rFrrrrrrrrr?r4rPrrrrSr r/rrs r#rHz MH.get_bytess@ | Cdj#c((;;UCCdj#c((;;TBB   w%,&&83>???    $ $| 1  $vvxx''77<$ OOO $ $ $ $ $ $ $ $ <$ OOOO$  $ $ $ $ $ $ $ $ $ $sBBB C(B>>CE  ,D/ E /EE  EEc ttj|jt |d}n:#t $r-}|jtjkrtd|zd}~wwxYwt|S)Nrr6) rrrrrrrrr?r4rrs r#rAz MH.get_file-sD RW\\$*c#hh77>>AA   w%,&&83>???   !}}sAA A;(A66A;c~ ttdtj|jDS)Nc3\K|]'}|t|V(dSr)isdigitr().0rs r# zMH.iterkeys..:sH::%).:3u::::::::r%)iterr[rrrrNs r#rOz MH.iterkeys8sJ+F::2:dj3I3I:::::;; ;r%c tjtj|jt |Sr)rrrrrrr.s r#rbzMH.__contains__=s1Gw~~bgll4:s3xx@@AAAr%c` tt|Sr)rrQrOrNs r#rdz MH.__len__As#84 (()))r%c |jsUttj|jdd|_t|jd|_dSdS)Nrr>T)rFrrrrrrBrPrNs r#ruzMH.lockEsW| bgll4:GGOODJ tz " " "DLLL  r%c| |jr3t|jt|j|`d|_dSdSrR)rFrSrBrrNs r#rwz MH.unlockLsI1 < !  $ $ $  # # #  DLLL  ! !r%c dSrrrNs r#rszMH.flushTs 4r%cB |jr|dSdSr)rFrwrNs r#ryzMH.closeXs** <  KKMMMMM  r%c g}tj|jD]Y}tjtj|j|r||Z|Sr)rrrrrrrrs r#rzMH.list_folders]se,Z ++ % %Ew}}RW\\$*e<<== % e$$$ r%cx ttj|j||jdS)NFr rrrrrrr s r#r z MH.get_folderes79"',,tz622-777 7r%cv ttj|j||jS)Nrrr s r#rz MH.add_folderjs5H"',,tz622-))) )r%cR tj|j|}tj|}|dgkr3tjtj|dn|gkrnt d|jztj|dS)NrzFolder not empty: %s)rrrrrr0rr)r r rentriess r#rzMH.remove_folderos;w||DJ//*T"" ' ' ' Ibgll499 : : : : ]]  6 CDD D r%c J i}ttj|jddd5}t | |D]+} |d\}}t }|D]}|r#| t|9d|dD\}} | t|| dz fd t|D||<t||d kr||=#t$r%t!d |zwxYw dddn #1swxYwY|S) NrrASCIIencodingrc34K|]}t|VdSr)r()rxs r#rz#MH.get_sequences..s(*K*Ka3q66*K*K*K*K*K*Kr%-rcg|]}|v| Srr)rr/all_keyss r# z$MH.get_sequences..s)%=%=%=S,/8OO&),;OOr%rz"Invalid sequence specification: %s)rrrrrsetrRrrr,r(rqranger[rr}rrstrip) r resultsrrrcontentsrRspecrdrers @r#rzMH.get_sequences{sK "',,tz?;;S7 S S S 5WX499;;''H 5 55%)ZZ__ND(55D ( 0 0@@<<>>@ HHSYY////*K*K4::c??*K*K*KKE4 KKeTAX(>(>????%=%=%=%=F4LL%=%=%=GDM74=))Q..#DM!555%&J&*kkmm'45555 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5&s*'F"C6EF/FFFFcF ttj|jddd} tjtj|jtjtjz| D]\}}t|dkr| |dzd}d}tt|D]^}|dz |kr|sd }| d n7|rd}| |d |n| d |z|}_|r&| t|d z| d  t|dS#t|wxYw)Nrzr+rrrrFrTr z %s )rrrrrryrrrr`rrr[rrr)r sequencesrrrRprev completingr/s r# set_sequenceszMH.set_sequencessH dj/::D7 S S S  HRWQVR[2:%=>> ? ? ?'oo// " " dt99>>s ###" !#d)),,  CQw$)))-JGGCLLL#-%* 444 56666 ,,,DD"GGCII,----GGDMMMM) ", NNNNNKNNNNs EFF c : |}d}g}|D]y}|dz |krg|||dzf tjtj|jt|tj|jt|dztj tj|jt|n#ttf$r{tj tj|jt|tj|jt|dzYnwxYw|dz }{|dz|_ t|dkrdS|D])\}}|D]!\}}||vr||||<"*||dS)Nrr)rrOrrrrrrrunlinkrrrrCrr`indexr) r rrchangesr/rroldrs r#packzMH.packsM&&(( ==??  CQw$TAX///BGBGLLSXX>>GLLS]]CCEEE Ibgll4:s3xx@@AAAA '8GGGIbgll4:s3xx@@ gll4:s4!8}}EEGGGGGG AIDD w<<1   F'oo// 8 8ND(# 8 8S(??47HX^^C001 8 9%%%%%sA8DB FFc< |}|}|D]9\}}||vr||||vr|||=:|D] }||vr|g||< ||dSr)rr`rrr)r r+r/pending_sequences all_sequencesrrsequences r#rzMH._dump_sequencessI#1133**,, +1133 2 2ND(((($$$$X^^C001) 0 0H},,+.% h' =)))))r%r)rrrr$r,r0r8r>rHrArOrbrdrurwrsryrr rrrrrrrr%r#rrsj       D   02$$$*   ;;; BBB***   !!! 777 )))   0:&&&4 * * * * *r%rczeZdZ ehdZddZdZdZdZdZ d Z d Z d Z d Z d ZdZdZdZdS)r>filededitedresentunseendeletedanswered forwardedNTcP t||||i|_dSr)r<r$_labelsrs r#r$zBabyl.__init__s*)##D$@@@ r%c t||}t|tr||j|<|Sr)r<r,rr get_labelsr)r r+r/s r#r,z Babyl.addsI2 $$T733 g| , , 5 ' 2 2 4 4DL  r%cd t||||jvr |j|=dSdSr)r<r0rr.s r#r0z Babyl.removes@K!!$,,, $,   S!!!  r%c t|||t|tr||j|<dSdSr)r<r8rrrrr7s r#r8zBabyl.__setitem__sWL&&tS'::: g| , , 5 ' 2 2 4 4DL    5 5r%c ||\}}|j||jt j} |j}|dt zks|sn/||t dYt j} |j}|t ks|sn/||t dV||j z }|j |}|t d}t| |z} | | ||jvr | |j|| SNT *** EOOH ***r)rrBrrrrrrrrXrrr set_visibler set_labels) r r/rdreoriginal_headersrvisible_headersnbodyrs r#r>zBabyl.get_messagesBll3'' t  :<< A:&&((D0000  " "4<<#?#? @ @ @  A *,, @:&&((Dwd  ! !$,,w">"> ? ? ?  @ 4:??$$ $zq!!||GU+++4466=>> 0022333 $,   NN4<, - - - r%c ||\}}|j||jt j} |j}|dt zks|sn/||t dY |j}|t ks|sn(| }||j z }|j |}|t d}||zSr) rrBrrrrrrrrrXr) r r/rdrerrheadersrrs r#rHzBabyl.get_bytess-All3'' t  :<< A:&&((D0000  " "4<<#?#? @ @ @  A  :&&((Dwd #++-- 4:??$$ $zq!!||GU++~r%c tj||dtSr)rrrHrrr.s r#rAzBabyl.get_file)s1Dz$..--55eWEEFFFr%c |t}|jD]}||||jt|Sr)rrrr\rqdifference_update_special_labelsrQ)r labels label_lists r#rzBabyl.get_labels-spB ,--// & &J MM* % % % %  !5666F||r%c gg}}|jdd}g} |}|j}|j}|dtzkrt |t |kr*||t tz ||d|jdddD}||n|dks|dtzkrKt |t |kr*||t tz n-|s+||t tz nttt|||_ tt||_ t |j |_ |jdd|j|_dS) NrTs c^g|]*}||+Sr)striprlabels r#rz'Babyl._generate_toc..Ds<:::E+0;;==:%++--:::r%r,r0)rBrrrXrrrrrrrrrrCrG)r rrr label_listsrrr s r#rozBabyl._generate_toc6s>B   H:&&((Dz((H{W,,,u::F ++LLCLL!8999 h'''::+/:+>+>+@+@+D+J+J4+P+P:::""6****DGg,=$=$=u::F ++LLCLL!8999  XG 4555# $3vu#5#56677 Ik2233 TY 1 JOO--r%c dtz}|dtzz }|}d|D}|dd|ztzz }|dz }||dS)NsBABYL OPTIONS:s Version: 5c3>K|]}|VdSr)r{rs r#rz*Babyl._pre_mailbox_hook..Ys*55U%,,..555555r%sLabels:rr)rrrr)r rbabylr s r#rZzBabyl._pre_mailbox_hookTs}:!G+ ((""55f555 dii///'99  r%cB |dtzdS)N rris r#r\zBabyl._pre_message_hook^s"; '!"""""r%cB |tdzdS)Nrrris r#r^zBabyl._post_message_hookbs": '!"""""r%c |j}t|trg}g}|D]6}||jvr||!||7|jd|D]1}|jd|z2|jd|D]4}|jd|zdz5|jtn"|jdtzt|tj j rKtj}tj|dd}|||d |}|j|d t|d ks|snQ|jd tzt|trtj} tj| dd} | | | }|j|d t|d ks|snQng|d |}|j|d t|d ks|snQ |d } | sn4|j| d tLnt|t.t0tjfrt|tjr/t5jd t8d|}t|t0r||}|ddz} | dz dkr|j|d| d t|jd tz|j|d| d t|j|| dd tnU|jd tztz|j|d tntA|drtA|dr"t5jdt8d|j!}|} d } |}|"dr|ddd z}n"|"dr |ddd z}|j|d t|d ks|s=|r:d}|jd tz|| nn |}|sn|"dr|ddtz}nO|"dr|ddtz}n'|"d r|ddtz}|j|ntGdtI|z|j}||fS)N1s, s,, rs1,,FrTrrrUrrs r0rrrrrrrr)%rBrXrrrrrrr{rrFr+r rrrrrrrr get_visiblerrrrrrrrr~rrmrrrr)r r+rdspecial_labelsr r orig_bufferorig_generatorr vis_buffer vis_generatorr body_start original_pos first_passres r#rqzBabyl._install_messagefsN> !! g| , , /NF ++-- ) )D000"))%0000MM%(((( J  T " " "' 9 9   !78888 J  U # # # ? ?    !6!=>>>> J  W % % % % J  Vg- . . . gu}4 5 5S H*,,K"_;;KPQRRN  " "7 + + +   Q    "++--   eW!=!=>>>5===   J  _w6 7 7 7'<00 Z\\ % > >z5RS T T %%g&9&9&;&;<<<%..00DJ$$T\\%%A%ABBBu}}D}   ###&//11DJ$$T\\%%A%ABBBu}}D}   A$))$//   w!?!?@@@  A %bk!: ; ;3 H'2;// - *+=qBBB!**,,'3'' 9//88 g..2JA~##   *!5!=!=eW!M!MNNN   7!:;;;   *!5!=!=eW!M!MNNN   !5!=!=eW!M!MNNNN   7!:W!DEEE   !@!@AAAA Wj ) )# Hw)) ) 56H!MMM!."<<>>LJ ''))==))-9u,DD]]5))-9u,D   eW!=!=>>>5===!%*  ((7)BCCC \2222  '''))==))/9w.DD]]5))/9w.DD]]5))/9w.D   &&& '6gFGG Gz  t}r%r)rrr frozensetrr$r,r0r8r>rHrArrorZr\r^rqrr%r#rrs 'i!B!B!BCCO """ 555 8,GGG...<######iiiiir%rc$eZdZ ddZdZdZdS)r Ncj t|tjjrU|t j|t|tr||dSdSt|tr)|tj |dSt|tr)|tj |dSt|tj r)|tj|dSt|dr)|tj|dS|&tjj|dSt%dt'|z)Nrr)rrFr+r _become_messagecopydeepcopy _explain_torrGrmessage_from_stringr TextIOWrappermessage_from_filermmessage_from_binary_filer$rrr*s r#r$zMessage.__init__s, gu}4 5 5 H  w!7!7 8 8 8'7++ *##D))))) * *  ' ' H  !9'!B!B C C C C C  % % H  !:7!C!C D D D D D !1 2 2 H  !8!A!A B B B B B Wf % % H  !?!H!H I I I I I _ M ! * *4 0 0 0 0 06gFGG Gr%cp t|dg}|jD]}||vr|j||j|<dS)N_type_specific_attributes)getattr__dict__)r r+ type_specificrs r#r(zMessage._become_messagesS>)DbII $ = =D=((&-&6t&< d# = =r%cP t|trdStd)Nz Cannot convert to specified type)rr rr*s r#r+zMessage._explain_tos,H gw ' ' @ F>?? ?r%r)rrrr$r(r+rr%r#r r sR:HHHH&===@@@@@r%r cbeZdZ gdZddZdZdZdZdZdZ d Z d Z d Z d Z d ZdZdS)r )_subdir_info_dateNc d|_d|_tj|_t||dS)Nrr)r7r8rr9r r$r*s r#r$zMaildirMessage.__init__s<3  Y[[ w'''''r%c |jSr)r7rNs r#rzMaildirMessage.get_subdirs $|r%cR |dks|dkr ||_dStd|z)Nrrz!subdir must be 'new' or 'cur': %s)r7r})r rs r#rzMaildirMessage.set_subdirs5+ U??foo!DLLL@6IJJ Jr%cZ |jdr|jddSdS)N2,r0r)r8rrNs r# get_flagszMaildirMessage.get_flagss28 :  & & :abb> !2r%c\ ddt|z|_dS)Nr>r)rr[r8)r flagss r# set_flagszMaildirMessage.set_flagss'7BGGF5MM222 r%c |dt|t|zdSNrrBrrr?r flags r#add_flagzMaildirMessage.add_flagF< rwws4>>#3#344s4yy@AABBBBBr%c |rY|dt|t|z dSdSrD)r?rBrrrFs r# remove_flagzMaildirMessage.remove_flagseE >>   G NN2773t~~'7'7#8#83t99#DEE F F F F F G Gr%c |jSr)r9rNs r#rzMaildirMessage.get_date"s Jzr%ct t||_dS#t$rtd|zdwxYw)Nzcan't convert to float: %s)floatr9r}r)r dates r#rzMaildirMessage.set_date&sQG KtDJJJ K K K84?@@d J Ks7c |jSr)r8rNs r#rzMaildirMessage.get_info-s 3zr%c~ t|tr ||_dStdt |z)Nzinfo must be a string: %s)rrr8rr)r infos r#rzMaildirMessage.set_info1s=. dC  FDJJJ7$t**DEE Er%c t|trw||||||dSt|trt|}d|vr| d|dkr| dd|vr| dd|vr| dd|vr| d| d tj |dSt|trpt|}d|vr|d d|vr|d d|vr|d dSdSt|t rt|}d|vr|d d|vr|d d|vr|dd|vr|ddSdSt|t$rdSt'dt)|z)NSRrOTDFA MAILER-DAEMONrrepliedflaggedrrr$r$Cannot convert to specified type: %s)rr rBr?rrrrrrrHr{rrr rr add_labelr rr)r r+rAs r#r+zMaildirMessage._explain_to8sI g~ . .' +   dnn.. / / /   t00 1 1 1   T]]__ - - - - - !1 2 2# +(())Ee||  %%%  E))  %%%e||  %%%e||  %%%e||  %%%   _dk$--//.J.J K K K K K  + + +(())E%$$X...e||$$Y///e||$$Y/////|  . . +(())E%!!(+++e||!!),,,e||!!*---e||!!+.....|  ) ) + DB MM*++ +r%r)rrrr1r$rrr?rBrHrKrrrrr+rr%r#r r s3 = = =((((KKK333CCCGGG KKKFFF)+)+)+)+)+r%r cJeZdZ dgZd dZdZd dZdZdZdZ d Z d Z dS) r_fromNc8 |ddt|tjjrH|}|2|dr||ddt||dS)Nr[TzFrom r)r{rrFr+r rrr$)r r+rs r#r$z_mboxMMDFMessage.__init__is5 ot,,, gu}4 5 5 ,++--H#(;(;G(D(D# hqrrl+++w'''''r%c |jSr)rarNs r#rz_mboxMMDFMessage.get_fromrs .zr%c| |1|durtj}|dtj|zz }||_dS)NTr)rrrra)r rtime_s r#r{z_mboxMMDFMessage.set_fromvsCL  }}  S4<... .E r%c^ |dd|ddzS)NStatusrX-Status)r<rNs r#r?z_mboxMMDFMessage.get_flags~s,8xx"%%R(@(@@@r%c t|}d\}}dD] }||vr||z }||!dD] }||vr||z }||!|dt|z } |d|n&#t $r|d|YnwxYw |d|dS#t $r|d|YdSwxYw)N)rr)rUrV)rXrYrZrrgrh)rr0rr[replace_headerr4 add_header)r rA status_flags xstatus_flagsrGs r#rBz_mboxMMDFMessage.set_flagssL7E &,# m # #Du}}$  T"""# # #Du}}%  T"""///  4   , 7 7 7 7 4 4 4 OOHl 3 3 3 3 3 4 7    M : : : : : 7 7 7 OOJ 6 6 6 6 6 6 7s$B B<;B<C C<;C<c |dt|t|zdSrDrErFs r#rHz_mboxMMDFMessage.add_flagrIr%c d|vsd|vrY|dt|t|z dSdS)NrgrhrrErFs r#rKz_mboxMMDFMessage.remove_flagscE t  zT11 NN2773t~~'7'7#8#83t99#DEE F F F F F 21r%c t|tr:t|}d|vr|dd|vr|dd|vr|dd|vr|dd|vr|d|d =|d =d |d d} | tj tj |d dS#ttf$rYdSwxYwt|t rP||||dSt|t&rtt|}d|vr|dd|vr|dd|vr|d|d =|d =dSt|t*rtt|}d|vr|dd|vr|dd|vr|d|d =|d =dSt|t.rdSt1dt3|z)NrVrrYrZrUrTrXrWstatuszx-statusrz%a %b %d %H:%M:%S %Yrr\r]rrr^)rr rr?rrHrrrrcalendartimegmrstrptimer} OverflowErrorrrBr{r rrr_r rr)r r+rA maybe_dates r#r+z_mboxMMDFMessage._explain_tos2O g~ . ./ +(())Ee||""5)))e||  %%%e||  %%%e||  %%%e||  %%%! #$--//"7"7"9"9"##">??J   z6L2N2N"O"OPPPPP .     !1 2 2 +   dnn.. / / /   T]]__ - - - - -  + + +(())E%$$X...e||$$Y///e||$$Y///! ###  . . +(())E%!!(+++e||!!),,,e||!!*---! ###  ) ) + DB MM*++ +s>:D::EEr) rrrr1r$rr{r?rBrHrKr+rr%r#rrds9!( ((((AAA777,CCCGGG 1+1+1+1+1+r%rceZdZdS)r Nrrrrr%r#r r 00r%r c<eZdZ dgZd dZdZdZdZdZdZ dS) r _sequencesNcL g|_t||dSr)r|r r$r*s r#r$zMHMessage.__init__s(/w'''''r%c" |jddSr)r|rNs r#rzMHMessage.get_sequencessBqqq!!r%c0 t||_dSr)rQr|)r rs r#rzMHMessage.set_sequencessAy//r%c t|tr'||jvr|j|dSdSt dt |z)Nzsequence type must be str: %s)rrr|rrrr rs r#rzMHMessage.add_sequenceseF h $ $ Nt..&&x00000/.;d8nnLMM Mr%c` |j|dS#t$rYdSwxYwr)r|r0r}rs r#remove_sequencezMHMessage.remove_sequencesHO  O " "8 , , , , ,    DD   --cd t|trt|}d|vr|dn*|d|dd|vr|dd|vr|ddSdSt|t rt|}d|vr|dn|d d|vr|dd|vr|d dSdSt|tr.|D]}||dSt|trWt|}d|vr| dd|vr| d dSdSt|trdStd t|z) NrrrTr]rYr\rUROrVrZrr^)rr rrrrHrr rrr_r rr)r r+rrs r#r+zMHMessage._explain_tossD g~ . ." +D..0011I9$$""5))))""5)))  %%%I%%  %%%I%%  %%%%%&% !1 2 2 +D..0011Iy((  &&&&  %%%I%%  %%%I%%  %%%%%&%  + + + ..00 / /$$X.... / /  . . +D..0011I9$$!!(+++I%%!!*-----&%  ) ) + DB MM*++ +r%r) rrrr1r$rrrrr+rr%r#r r s.!-(((( """***NNN$+$+$+$+$+r%r cPeZdZ ddgZd dZdZdZdZdZd Z d Z d Z d Z dS)rr_visibleNcr g|_t|_t||dSr)rr rr$r*s r#r$zBabylMessage.__init__&s31   w'''''r%c" |jddSr)rrNs r#rzBabylMessage.get_labels,s5|AAAr%c0 t||_dSr)rQr)r r s r#rzBabylMessage.set_labels0s4F|| r%c t|tr'||jvr|j|dSdSt dt |z)Nzlabel must be a string: %s)rrrrrrr rs r#r_zBabylMessage.add_label4se9 eS ! ! HDL(( ##E*****)(84;;FGG Gr%c` |j|dS#t$rYdSwxYwr)rr0r}rs r# remove_labelzBabylMessage.remove_label<sHB  L   & & & & &    DD rc, t|jSrr rrNs r#rzBabylMessage.get_visibleCsAt}%%%r%c0 t||_dSrr)r visibles r#rzBabylMessage.set_visibleGs@(( r%c |jD]0}||vr"|j|||(|j|=1dD]}||vr||jvr|||j|< dS)N)DateFromzReply-ToToCCSubject)rrRrj)r headers r#update_visiblezBabylMessage.update_visibleKsGm((** * *F~~ ,,VT&\BBBBM&))I 5 5F~~& "="=(,V  f% 5 5r%c t|trt|}d|vr|dn*|d|dd|vsd|vr|dd|vr|dd |vr|d dSdSt|t rt|}d|vr|d n|d d |vr|d d|vr|ddSdSt|trWt|}d|vr|dd|vr|ddSdSt|trU| | |D]}| |dSt|trdStdt|z)NrrrTrrr$rrUrrWrrVrXrZr\r^)rr rrrrHrr rrrrr_r rr)r r+r rs r#r+zBabylMessage._explain_toVsG g~ . .% +**++F6!!""5))))""5)))  %%%f$$F(:(:  %%%V##  %%%F""  %%%%%#" !1 2 2 +**++Fv%%  &&&&  %%%F""  %%%V##  %%%%%$#  + + +**++F6!!$$X...V##$$Y/////$#  . . +    0 0 2 2 3 3 3** ) )!!%(((( ) )  ) ) + DB MM*++ +r%r) rrrr1r$rrr_rrrrr+rr%r#rr!s1!*J 7(((( $$$HHH&&&))) 5 5 5'+'+'+'+'+r%rceZdZdS)rNryrr%r#rrrzr%rceZdZ ddZddZddZddZddZdZdZ dd Z d Z d Z d Z dZdZdZdZdZedZeeZdS)rNc^ ||_|||_dS||_dSr)rBrX_pos)r rposs r#r$z_ProxyFile.__init__s/& ;DIIIDIIIr%cD |||jjSr)_readrBrr sizes r#rz_ProxyFile.readszz$ 000r%cD |||jjSr)rrBread1rs r#rz_ProxyFile.read1szz$ 0111r%cD |||jjSr)rrBrrs r#rz_ProxyFile.readlineszz$ 3444r%cx g}|D]3}||||t|z}|dkrn4|S)Nr)rr)r sizehintrhrs r# readlinesz_ProxyFile.readlinessU"  D MM$   #CII%q==E r%c#DK |}|sdS|Vr)r)r rs r#rZz_ProxyFile.__iter__s6! ==??D JJJ  r%c |jSr)rrNs r#rXz_ProxyFile.tells "yr%rc |dkr|j|j|j|||j|_dS)NrrBrrrXr offsetwhences r#rz_ProxyFile.seeksQ Q;; JOODI & & & '''JOO%% r%c t|dr: t|jdr|j|`dS#|`wxYwdS)NrBry)rmrBryrNs r#ryz_ProxyFile.closesd 4 ! !  4:w//'J$$&&&JJJDJ   s .AA c |d}|j|j||}|j|_|S)Nrr)r r read_methodrhs r#rz_ProxyFile._readsL0 <D  """T""JOO%%  r%c |SrrrNs r# __enter__z_ProxyFile.__enter__s 2 r%c.|dSr)ry)r excs r#__exit__z_ProxyFile.__exit__s r%c4|jSr)rBreadablerNs r#rz_ProxyFile.readablez""$$$r%c4|jSr)rBwritablerNs r#rz_ProxyFile.writablerr%c4|jSr)rBseekablerNs r#rz_ProxyFile.seekablerr%c4|jSr)rBrsrNs r#rsz_ProxyFile.flushsz!!!r%clt|dsdSt|jdsdS|jjS)NrBTrF)rmrBrrNs r#rz_ProxyFile.closeds=tW%% 4tz8,, 5z  r%rr)rrrr$rrrrrZrXrryrrrrrrrspropertyrrrrrr%r#rrsN(111122225555    &&&&%%%%%%%%%"""!!X!$ L11r%rc2eZdZ ddZdZd dZdZdZdS) rNc\ t|||||_||_dSr)rr$_start_stop)r rrdres r#r$z_PartialFile.__init__s/(D!U+++  r%cH t||jz Sr)rrXrrNs r#rXz_PartialFile.tells8t$$t{22r%rc |dkr|j|_d}n|dkr|j|_d}t|||dS)Nrrr0)rrrrrrs r#rz_PartialFile.seeksQF Q;; DIFF q[[ DIFff-----r%c |j|jz }|dkrdS| |dks||kr|}t|||S)Nrr%)rrrr)r rr remainings r#rz_PartialFile._readsUIJ* >>3 <4!88ti'7'7DdK888r%c.t|dr|`dSdS)NrB)rmrBrNs r#ryz_PartialFile.close s) 4 ! !    r%)NNr)rrrr$rXrrryrr%r#rrsl0 333....999r%rTc d} tr tj|tjtjznT#t$rG}|jt jt jt jfvrtd|j zd}~wwxYw|r" t|j dz}| n8#t$r+}|jt jt jfvrYd}~dSd}~wwxYw tj|j |j dzd}tj|j n;#t t"f$r'tj|j |j dzd}YnwxYwdSdS#t&$r1tj|j td|j zwxYwdS#trtj|tj|rtj|j dzxYw)NFzlockf: lock unavailable: %s.lockTzdot lock unavailable: %s)fcntllockfLOCK_EXLOCK_NBrrEAGAINr@rArrrYryrrrrrrr-r0LOCK_UN)rrV dotlock_donerpre_locks r#rPrPsG2L%    Au}u}<====   7u|U\5;GGG,-J-.V.4555    1 ,QVg-=>>       7u|U[999FFFFF   1-GHM16G+;<<<#'L Ihm,,,, '8(((IhmQVg-=>>>#'LLL(-,!L# 1 1 1 (-(((()C)**0111 1% 1 1,  * K5= ) ) )  ( Iafw& ' ' ' sF5,:F5 B ABB  F5+B>=F5> C3C.'F5-C..C33F58$D6E565E.+E5-E..E55;F00F55AG<c trtj|tjtj|jdzrtj|jdzdSdS)Nr)rrrrrrrr0rs r#rSrS:se4 & Au}%%% w~~afw&''$ !&7"#####$$r%c tj|tjtjztjzd} t|dtj|S#tj|wxYw)Nrr>)rrrrO_RDWRry)rfds r#r,r,As[M rzBI- 95 A ABD%     s A!!A7c  t|dttjdtjdt jS)Nr)r,r(rr&r'rr))rs r#rYrYIsUL dddC 4D4D4D4D.4.@.B.B.B.B.0ikkk; < <rszJ    LLLL EEE A A A *  G $ $f2f2f2f2f2f2f2f2Rsssssgsssl F@@@@@"@@@F1.1.1.1.1.91.1.1.h*.*.*.*.*.9*.*.*.Zn*n*n*n*n*n*n*n*b vvvvv vvvr"@"@"@"@"@em#"@"@"@Jj+j+j+j+j+Wj+j+j+Zn+n+n+n+n+wn+n+n+b11111"111E+E+E+E+E+E+E+E+P\+\+\+\+\+7\+\+\+~11111"111b2b2b2b2b2b2b2b2J$$$$$:$$$N((((T$$$<<<   -----I---EEEEEEEEIIIIIEIII4444444444444%44444s>AA