403Webshell
Server IP : 178.105.222.151  /  Your IP : 216.73.216.38
Web Server : nginx/1.28.3
System : Linux MNK 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64
User : www-data ( 33)
PHP Version : 8.5.4
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /proc/1543940/root/lib/python3.14/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/1543940/root/lib/python3.14/__pycache__/mailbox.cpython-314.pyc
+
��3j{>���Rt^RIt^RIt^RIt^RIt^RIt^RIt^RIt^RIt^RI	t^RI
t^RIt^RIt^RI
Ht^RIt.R6Ot]P$P'R4t!RR4t!RR]4t!RR]4t!RR]4t!RR]4t!RR]4t!RR]4t!RR]4t!RR	]P8P:4t!R R
]4t!R!R"]4t!R#R]4t !R$R]4t!!R%R
]4t"!R&R]4t#!R'R(4t$!R)R*]$4t%R7R+lt&R,t'R-t(R.t)R/t*R0t+!R1R],4t-!R2R]-4t.!R3R]-4t/!R4R]-4t0!R5R]-4t1R# ]dRtELEi;i)8zDRead/write support for Maildir, mbox, MH, Babyl, and MMDF mailboxes.N)�GenericAlias�Mailbox�Maildir�mbox�MH�Babyl�MMDF�Message�MaildirMessage�mboxMessage�	MHMessage�BabylMessage�MMDFMessage�Error�NoSuchMailboxError�
NotEmptyError�ExternalClashError�FormatError�asciic�a�]tRt^"toRtR$RltRtRtRtRt	Rt
R%R	ltR
tRt
RtR
tRtRtRtRtRtRtRtRtRtRtRtR%RltRtR%RltRtRtRt Rt!R t"R!t#R&R"lt$]%!]&4t'R#t(Vt)R#)'rz*A group of messages in a particular place.Nc��\PP\PPV44VnW nR#)zInitialize a Mailbox instance.N)�os�path�abspath�
expanduser�_path�_factory��selfr�factory�creates&&&&�/usr/lib/python3.14/mailbox.py�__init__�Mailbox.__init__%s*���W�W�_�_�R�W�W�%7�%7��%=�>��
��
�c��\R4h)�$Add message and return assigned key.�&Method must be implemented by subclass��NotImplementedError�r�messages&&r!�add�Mailbox.add*���!�"J�K�Kr$c��\R4h)�=Remove the keyed message; raise KeyError if it doesn't exist.r'r(�r�keys&&r!�remove�Mailbox.remove.r.r$c�(�VPV4R#�N)r3r1s&&r!�__delitem__�Mailbox.__delitem__2s�����C�r$c�N�VPV4R# \dR#i;i�z'If the keyed message exists, remove it.N)r3�KeyErrorr1s&&r!�discard�Mailbox.discard5s%��	��K�K�����	��	�s��$�$c��\R4h)�>Replace the keyed message; raise KeyError if it doesn't exist.r'r(�rr2r+s&&&r!�__setitem__�Mailbox.__setitem__<r.r$c�L�VPV4# \dTu#i;i)z9Return the keyed message, or default if it doesn't exist.)�__getitem__r;)rr2�defaults&&&r!�get�Mailbox.get@s,��	��#�#�C�(�(���	��N�	�s��
#�#c��VP'gVPV4#\P!VP	V44;_uu_4pVPV4uuRRR4# +'giR#;i)z=Return the keyed message; raise KeyError if it doesn't exist.N)r�get_message�
contextlib�closing�get_file)rr2�files&& r!rD�Mailbox.__getitem__GsS���}�}�}��#�#�C�(�(��#�#�D�M�M�#�$6�7�7�4��}�}�T�*�8�7�7�7�s�A-�-A>	c��\R4h)�4Return a Message representation or raise a KeyError.r'r(r1s&&r!rI�Mailbox.get_messageOr.r$c�h�\P!VPV44P4#)z�Return a string representation or raise a KeyError.

Uses email.message.Message to create a 7bit clean string
representation of the message.��email�message_from_bytes�	get_bytes�	as_stringr1s&&r!�
get_string�Mailbox.get_stringSs'��
�'�'����s�(;�<�F�F�H�Hr$c��\R4h)z8Return a byte string representation or raise a KeyError.r'r(r1s&&r!rV�Mailbox.get_bytesZr.r$c��\R4h)�6Return a file-like representation or raise a KeyError.r'r(r1s&&r!rL�Mailbox.get_file^r.r$c��\R4h)�Return an iterator over keys.r'r(�rs&r!�iterkeys�Mailbox.iterkeysbr.r$c�4�\VP44#)zReturn a list of keys.)�listrbras&r!�keys�Mailbox.keysfs���D�M�M�O�$�$r$c#�z"�VP4FpW,pTx�K	R# \dK$i;i5i)z%Return an iterator over all messages.N�rbr;�rr2�values&  r!�
itervalues�Mailbox.itervaluesjs;����=�=�?�C�
��	���K�#���
��
�s�;�)�
;�8�;�8�;c�"�VP4#r6)rlras&r!�__iter__�Mailbox.__iter__ss����� � r$c�4�\VP44#)z,Return a list of messages. Memory intensive.)rerlras&r!�values�Mailbox.valuesvs���D�O�O�%�&�&r$c#�|"�VP4FpW,pY3x�K	R# \dK%i;i5i)z.Return an iterator over (key, message) tuples.Nrirjs&  r!�	iteritems�Mailbox.iteritemszs>����=�=�?�C�
��	���,��#���
��
�s�<�*�<�9�<�9�<c�4�\VP44#)z9Return a list of (key, message) tuples. Memory intensive.)reruras&r!�items�
Mailbox.items�s���D�N�N�$�%�%r$c��\R4h)�9Return True if the keyed message exists, False otherwise.r'r(r1s&&r!�__contains__�Mailbox.__contains__�r.r$c��\R4h)�*Return a count of messages in the mailbox.r'r(ras&r!�__len__�Mailbox.__len__�r.r$c�V�VP4FpVPV4K	R#)zDelete all messages.N)rfr<r1s& r!�clear�
Mailbox.clear�s���9�9�;�C��L�L���r$c�`�W,pTPT4T# \dTu#i;i)z3Delete the keyed message and return it, or default.)r;r<)rr2rE�results&&& r!�pop�Mailbox.pop�s7��	��Y�F�	
���S���
���	��N�	�s��
-�-c�j�VP4FpWPV43u#	\R4h)z6Delete an arbitrary (key, message) pair and return it.zNo messages in mailbox)rbr�r;r1s& r!�popitem�Mailbox.popitem�s1���=�=�?�C����#��'�'�#��3�4�4r$c��\VR4'dVP4pM%\VR4'dVP4pMTpRpVF
wrEWPV&K	V'd\R4hR# \dRpK3i;i)z4Change the messages that correspond to certain keys.rurxFTzNo message with key(s)N)�hasattrrurxr;)r�arg�source�bad_keyr2r+s&&    r!�update�Mailbox.update�s����3��$�$��]�]�_�F�
�S�'�
"�
"��Y�Y�[�F��F���"�L�C�
�#�S�	�#�
��3�4�4����
���
�s�A0�0
B�Bc��\R4h)�&Write any pending changes to the disk.r'r(ras&r!�flush�
Mailbox.flush�r.r$c��\R4h)�Lock the mailbox.r'r(ras&r!�lock�Mailbox.lock�r.r$c��\R4h)�#Unlock the mailbox if it is locked.r'r(ras&r!�unlock�Mailbox.unlock�r.r$c��\R4h)�Flush and close the mailbox.r'r(ras&r!�close�
Mailbox.close�r.r$c�Z�VPR4# \d
\R4hi;i)rz?String input must be ASCII-only; use bytes or a Message instead)�encode�UnicodeError�
ValueErrorr*s&&r!�_string_to_bytes�Mailbox._string_to_bytes�s7��	2��>�>�'�*�*���	2��1�2�
2�	2�s��*Fc�>�\V\PP4'd�\P
!4p\PPWC^4pVPV4VP^4VP4pVPR\4pVPV4VP'd5VP\4'gVP\4R#R#R#\V\ \"\P$34'd�\V\P$4'd-\&P(!R\*^4VP-4p\V\ 4'dVP/V4pV'dVPRR4pVPR\4pVPV4VP'd5VP\4'gVP\4R#R#R#\1VR4'EdJ\1VR4'd)\&P(!R\*^4VP2pRpVP54pVPR	4'dVRRR,pM#VPR
4'd
VRRR,pV'gMZV'd(VP7R4'dRVR
,,pVPR\4pVPV4TpK�VP'd?V'd5VP\4'gVP\4R#R#R#R#\9R\;V4,4h)z%Dump message contents to target file.�
�8Use of StringIO input is deprecated, use BytesIO insteads
From s
>From �read�buffer�DUse of text mode files is deprecated, use a binary mode file insteadN�
�
�From s>From ��NN�Invalid message type: %s������)�
isinstancerTr+r	�io�BytesIO�	generator�BytesGenerator�flatten�seekr��replace�linesep�write�_append_newline�endswith�str�bytes�StringIO�warnings�warn�DeprecationWarning�getvaluer�r�r��readline�
startswith�	TypeError�type)	rr+�target�mangle_from_r��gen�data�lastline�lines	&&&&     r!�
_dump_message�Mailbox._dump_message�s����g�u�}�}�4�4�5�5��Z�Z�\�F��/�/�0�0��q�I�C��K�K�� ��K�K��N��;�;�=�D��<�<��w�/�D��L�L����#�#�#�D�M�M�'�,B�,B����W�%�-C�#���#�u�b�k�k�!:�
;�
;��'�2�;�;�/�/��
�
�*�+=�q�B�!�*�*�,���'�3�'�'��/�/��8���!�/�/�*�k�B���o�o�e�W�5�G��L�L��!��#�#�#�G�,<�,<�W�,E�,E����W�%�-F�#��W�f�
%�
%��w��)�)��
�
�5�6H�!�M�!�.�.���H���'�'�)���=�=��)�)����9�u�,�D��]�]�5�)�)����9�u�,�D����D�O�O�H�$=�$=�$�t�B�x�/�D��|�|�E�7�3�����T�"����#�#�#���9J�9J�7�9S�9S����W�%�:T��#��6��g��F�G�Gr$)rr�NTr6�F)*�__name__�
__module__�__qualname__�__firstlineno__�__doc__r"r,r3r7r<rArFrDrIrXrVrLrbrfrlrorrrurxr|r�r�r�r�r�r�r�r�r�r�r�r��classmethodr�__class_getitem__�__static_attributes__�__classdictcell__��
__classdict__s@r!rr"s�����4� �
L�L���L��+�L�I�L�L�L�%��!�'��&�L�L��
�5�5�"L�L�L�L�2��O�4H�l$�L�1�r$c�a�]tRtRtoRtRtR(RltRtRtRt	R	t
R
tRtRt
R
tV3RlRltRtV3RlRltV3RlRltV3RlRltRtRtRtRtRtRtRtRtRtR tR!tR"t^t R#t!R$t"R%t#R&t$R't%Vt&R#))rizA qmail-style Maildir mailbox.�:Nc	���\PWW#4R\PP	VP
R4R\PP	VP
R4R\PP	VP
R4/Vn\PPVP
4'gxV'd[\P!VP
R4VPP4Fp\P!VR4K	M\VP
4h/VnR^R^/Vn^Vn
RVnR#)zInitialize a Maildir instance.�tmp�new�cur�g�������?N)rr"rr�joinr�_paths�exists�mkdirrrr�_toc�_toc_mtimes�
_last_read�_skewfactor)r�dirnamerr rs&&&& r!r"�Maildir.__init__s��������8��2�7�7�<�<��
�
�E�2��2�7�7�<�<��
�
�E�2��2�7�7�<�<��
�
�E�2����
�w�w�~�~�d�j�j�)�)��������U�+� �K�K�.�.�0�D��H�H�T�5�)�1�)����4�4���	�!�1�e�Q�/��������r$c�.�VP4pVPW4\T4\T\4'dETP4pTPTP4,pY@P8XdRpMRpRp\PPTP4PTP4^,p\PP!TP"Y5T,4p\T\4'dY\P$!TP\PP'TP4TP)434\P*!TPT4\P
!TP4T# \d3TP4\P
!TP4hi;i \,\.3d&\P0!TPT4T#i;i \2dXp\P
!TP4TP4\4P68Xd\9RT,4hhRp?ii;i)r&�r�z$Name clash with existing message: %sN)�_create_tmpr��
BaseExceptionr�rr3�name�_sync_closer�r
�
get_subdir�colon�get_infor�basename�splitr�r�utime�getatime�get_date�link�AttributeError�PermissionError�rename�OSError�errno�EEXISTr)rr+�tmp_file�subdir�suffix�uniq�dest�es&&      r!r,�Maildir.add$s����#�#�%��	����w�1�
	�H���g�~�.�.��'�'�)�F��Z�Z�'�"2�"2�"4�4�F����#�����F��F��w�w����
�
�.�4�4�T�Z�Z�@��C���w�w�|�|�D�J�J��v�
�>���g�~�.�.��H�H�X�]�]��g�g�&�&�x�}�}�5�w�7G�7G�7I�J�
L�

	�
)�����
�
�t�,��	�	�(�-�-�(����G�	��N�N���I�I�h�m�m�$��	��0#�O�4�
/��	�	�(�-�-��.���
/���	��I�I�h�m�m�$��w�w�%�,�,�&�(�)O�+/�*0�1�1���
	�sB�F9�6!G9� H2�9=G6�92H/�+H2�.H/�/H2�2J�=AJ�Jc��\P!\PPVPVPV444R#�r0N)rr3rr�r�_lookupr1s&&r!r3�Maildir.removeNs*��
�	�	�"�'�'�,�,�t�z�z�4�<�<��+<�=�>r$c�Z�VPV4R# \\3dR#i;ir:)r3r;�FileNotFoundErrorr1s&&r!r<�Maildir.discardRs+��	��K�K�����+�,�	��	�s��*�*c�&�VPV4pVPV4pVPV4p\V\4'dTpMTp\P
P
V4pVPV9d5VPVPVP4R,,pMRpVPV4\P
PVPV4p	\P
PVPWqV,4p
\V\4'dE\P!V	\P
PV	4VP434\P!W�4R#)r?r�Nr�)rr,r�r
rrr�r�r�r<r�rr�rrr)rr2r+�old_subpath�temp_key�temp_subpath�dominant_subpathr
r�tmp_path�new_paths&&&        r!rA�Maildir.__setitem__Zs���l�l�3�'���8�8�G�$���|�|�H�-���g�~�.�.�+�� +�������!1�2���:�:�)�)��Z�Z�"2�"8�"8����"D�R�"H�H�F��F����S���7�7�<�<��
�
�L�9���7�7�<�<��
�
�F�&�L�A���g�~�.�.��H�H�X��g�g�&�&�x�0�'�2B�2B�2D�E�
G�
	�	�	�(�%r$c���VPV4p\\PP	VP
V4R4;_uu_4pVP'dVP
V4pM\V4pRRR4\PPV4wrVXPV4VPV9d2VPVPVP4R,4VP\PP\PP	VP
V444V# +'giL�;i)rP�rbNr�)r�openrrr�rrr
r��
set_subdirr��set_info�set_date�getmtime)rr2�subpath�f�msgr
r�s&&     r!rI�Maildir.get_messageus����,�,�s�#��
�"�'�'�,�,�t�z�z�7�3�T�
:�
:�a��}�}�}��m�m�A�&��$�Q�'��	;�
�w�w�}�}�W�-������v���:�:����L�L����D�J�J�/��3�4����R�W�W�%�%�b�g�g�l�l�4�:�:�w�&G�H�I��
�;�
:�s�0E�E"	c��\\PPVPVPV44R4;_uu_4pVP
4P\R4uuRRR4# +'giR#;i)�2Return a bytes representation or raise a KeyError.r r�N)	r!rrr�rrr�r�r��rr2r's&& r!rV�Maildir.get_bytes�sS��
�"�'�'�,�,�t�z�z�4�<�<��+<�=�t�
D�
D���6�6�8�#�#�G�U�3�E�
D�
D�
D�s�$A;�;B	c��\\PPVPVPV44R4p\
V4#)r]r )r!rrr�rr�
_ProxyFiler,s&& r!rL�Maildir.get_file�s4��������d�j�j�$�,�,�s�*;�<�d�C���!�}�r$c��VPV4pVPV9d#VPVP4R,#R#)z+Get the keyed message's "info" as a string.r�r�)rr�r�)rr2r&s&& r!r��Maildir.get_info�s7���,�,�s�#���:�:�� ��=�=����,�R�0�0�r$c� <�V^8�dQhRS[/#)��info�r�)�formatr�s"�r!�__annotate__�Maildir.__annotate__�s���
%�
%�#�
%r$c��\V\4'g\R\V424hVP	V4pVPVP4^,pV'dW@PV,,
pWC8XdR#\PPVPV4p\PPVPV4p\P!WV4W@PV&R#)z&Set the keyed message's "info" string.zinfo must be a string: N)
r�r�r�r�rr�r�rrr�rrr�)rr2r5r�new_subpath�old_pathrs&&&    r!r#�Maildir.set_info�s����$��$�$��5�d�4�j�\�B�C�C��l�l�3�'��!�'�'��
�
�3�A�6����:�:��,�,�K��%���7�7�<�<��
�
�K�8���7�7�<�<��
�
�K�8��
�	�	�(�%�$�	�	�#�r$c�h�VPV4pVPR4'd
VR,#R#)zHReturn as a string the standard flags that are set on the keyed message.�2,�r4NNr�)r�r�)rr2r5s&& r!�	get_flags�Maildir.get_flags�s+���}�}�S�!���?�?�4� � ���8�O�r$c� <�V^8�dQhRS[/#)r4�flagsr6)r7r�s"�r!r8r9�s���?�?�C�?r$c���\V\4'g\R\V424hVP	VRRP\
\V444,4R#)z>Set the given flags and unset all others on the keyed message.zflags must be a string: r?r�N)r�r�r�r�r#r��sorted�set)rr2rDs&&&r!�	set_flags�Maildir.set_flags�sK���%��%�%��6�t�E�{�m�D�E�E��
�
�c�4�"�'�'�&��U��*<�"=�=�>r$c� <�V^8�dQhRS[/#�r4�flagr6)r7r�s"�r!r8r9�s���K�K�#�Kr$c
���\V\4'g\R\V424hVP	VRP\
VPV44\
V4,44R#)zCSet the given flag(s) without changing others on the keyed message.�flag must be a string: r�N)r�r�r�r�rHr�rGrA�rr2rLs&&&r!�add_flag�Maildir.add_flag�sT���$��$�$��5�d�4�j�\�B�C�C����s�B�G�G�C����s�(;�$<�s�4�y�$H�I�Jr$c� <�V^8�dQhRS[/#rKr6)r7r�s"�r!r8r9�s���O�O�S�Or$c
�$�\V\4'g\R\V424hVP	V4'dLVPVRP
\VP	V44\V4,
44R#R#)zLUnset the given string flag(s) without changing others on the keyed message.rNr�N)r�r�r�r�rArHr�rGrOs&&&r!�remove_flag�Maildir.remove_flag�sh���$��$�$��5�d�4�j�\�B�C�C��>�>�#����N�N�3�����D�N�N�3�,?�(@�3�t�9�(L� M�N�r$c#�"�VP4VPFpVPV4Tx�K	R# \dK-i;i5i�r`N)�_refreshr�rr;r1s& r!rb�Maildir.iterkeys�sG����
�
���9�9�C�
����S�!��I����
��
�s%� A�>�
A�A
�	A�A
�
Ac�>�VP4WP9#�r{)rXr�r1s&&r!r|�Maildir.__contains__�s���
�
���i�i��r$c�L�VP4\VP4#�r)rX�lenr�ras&r!r��Maildir.__len__�s���
�
���4�9�9�~�r$c��R#)�"Write any pending changes to disk.N�ras&r!r��
Maildir.flush�s��	
r$c��R#)r�Nrcras&r!r��Maildir.lock����r$c��R#)r�Nrcras&r!r��Maildir.unlock�rgr$c��R#�r�Nrcras&r!r��
Maildir.close�rgr$c�j�.p\P!VP4F�p\V4^8�gKV^,R8XgK%\PP\PP
VPV44'gKtVPVR,4K�	V#)�Return a list of folder names.�.��NN)r�listdirrr_r�isdirr��append�rr��entrys&  r!�list_folders�Maildir.list_folders�sp�����Z�Z��
�
�+�E��5�z�A�~�%��(�c�/��w�w�}�}�R�W�W�\�\�$�*�*�e�<�=�=��
�
�e�B�i�(�,��
r$c��\\PPVPRV,4VP
RR7#)z/Return a Maildir instance for the named folder.roF�rr )rrrr�rr�r�folders&&r!�
get_folder�Maildir.get_folder�s2���r�w�w�|�|�D�J�J��f��=�#�}�}�#�%�	%r$c��\PPVPRV,4p\	W P
R7p\PPVR4p\PP
V4'gP\P!\P!V\P\P,R44V#)z>Create a folder and return a Maildir instance representing it.ro�r�
maildirfolderi�)rrr�rrrr�r�r!�O_CREAT�O_WRONLY)rr|rr��maildirfolder_paths&&   r!�
add_folder�Maildir.add_folder�s����w�w�|�|�D�J�J��f��5����}�}�5���W�W�\�\�$��@���w�w�~�~�0�1�1��H�H�R�W�W�/����b�k�k�1I���
��
r$c�*�\PPVPRV,4p\P!\PPVR44\P!\PPVR44,F3p\V4^8gV^,R8wgK#\
RV,4h	\P!V4FspVR8wgKVR8wgKVR8wgK\PP\PPW#44'gKb\
RV:RV:24h	\P!VRR	7F~wrEpVF6p\P!\PPWC44K8	VF6p\P!\PPWC44K8	K�	\P!V4R
#)�-Delete the named folder, which must be empty.ror�r�zFolder contains message(s): %sr�zFolder contains subdirectory 'z': F)�topdownN)rrr�rrrr_rrs�walkr3�rmdir)rr|rrv�root�dirs�filess&&     r!�
remove_folder�Maildir.remove_folder�sY���w�w�|�|�D�J�J��f��5���Z�Z������T�5� 9�:��Z�Z������T�5� 9�:�;�;�E��5�z�A�~��q��S��#�$D�v�$M�N�N�;��Z�Z��%�E���~�%�5�.�U�e�^��w�w�}�}�R�W�W�\�\�$�6�7�7�#�%+�U�%4�5�5�&�
"$����u�!=��D�����	�	�"�'�'�,�,�t�3�4������������d�2�3��">�
	����r$c��\P!4p\P!\PP	VP
R44Fqp\PP	VP
RV4pV\PP
V4,
R8�gK[\P!V4Ks	R#)zDelete old files in "tmp".r�i@�N)�timerrrrr�rrr3)r�nowrvrs&   r!�clean�
Maildir.cleansu���i�i�k���Z�Z������T�Z�Z�� ?�@�E��7�7�<�<��
�
�E�5�9�D��R�W�W�%�%�d�+�+�f�4��	�	�$��Ar$c	��\P!4p\P!4pRV9dVPRR4pRV9dVPRR4p\	V4:R\	V^,R,4:R\
P!4:R\P:R	V:2	p\
PPVPR
V4p\
P!V4\!RT,4h \d?\;P^,
un\T4u# \dLVi;ii;i)z=Create a file in the tmp subdirectory and open and return it.�/z\057r�z\072z.Mg��.A�P�Qror�z&Name clash prevented file creation: %s)r��socket�gethostnamer��intr�getpidr�_countrr�r�statr�_create_carefully�FileExistsErrorr)rr��hostnamerrs&    r!r��Maildir._create_tmps���i�i�k���%�%�'���(�?��'�'��W�5�H��(�?��'�'��W�5�H�$'��H�c�#��'�C�-�.@�"�)�)�+�$+�N�N�H�>���w�w�|�|�D�J�J��t�4��	��G�G�D�M�!�!I�!%�"&�'�	'��!�	��N�N�a��N�
�(��.�.��"�
��
��		�s0�D�(E�0
D=�:E�=E�E�E�Ec��\P!4VP,
^VP,8�dwRpVPFZp\P
P
VPV,4pW0PV,8�dRpW0PV&K\	V'gR#/VnVPF�pVPV,p\P!V4F�pVPR4'dK\P
PWE4p\P
PV4'dKbVPVP4^,p\P
PW%4VPV&K�	K�	\P!4VnR#)z!Update table of contents mapping.FTNro)r�r�r�r�rrr%r�r�rrr�r�rsr�r�)r�refreshr
�mtimerrv�prs&       r!rX�Maildir._refresh4s8���9�9�;����(�1�t�/?�/?�+?�?��G��*�*�����(�(����V�)<�=���+�+�F�3�3�"�G�+0� � ��(�	+�
����	��&�&�F��;�;�v�&�D����D�)���#�#�C�(�(���G�G�L�L��-���7�7�=�=��#�#���{�{�4�:�:�.�q�1��"$�'�'�,�,�v�"=��	�	�$��*�'��)�)�+��r$c��\PP\PPVPVP
V,44'dVP
V,#VP4VP
V,# \dL1i;i \d\
RT,4Rhi;i)z=Use TOC to return subpath for given key, or raise a KeyError.�No message with key: %sN)rrr�r�rr�r;rXr1s&&r!r�Maildir._lookupZs���	��w�w�~�~�b�g�g�l�l�4�:�:�t�y�y��~�F�G�G��y�y��~�%�H�	
�
�
��	F��9�9�S�>�!��	�	��	��
�	F��4�s�:�;��E�	F�s$�AB� B�B)�B&�%B&�)Cc���\VR4'gVP4VnV\VP4,# \dR#\
dK9i;i)z0Return the next message in a one-time iteration.�
_onetime_keysN)r�rbr��next�
StopIterationr;ras&r!r��Maildir.nexthsX���t�_�-�-�!%����D���
��D��!3�!3�4�5�5�� �
���
��
�s�A�A"�A"�A"�!A")r�r�r�r�r�r�r�)'r�r�r�r�r�r�r"r,r3r<rArIrVrLr�r#rArHrPrTrbr|r�r�r�r�r�rwr}r�r�r�r�r�rXrr�r�r�r�s@r!rrs�����(��E��((�T?��&�6
�4�
�
�
%�
%��?�?�K�K�O�O�� �
�

�����%���& ��F�'�0$&�LF�
�
r$c�a�]tRtRtoRtRRltRtRtRtRt	R	t
R
tRtRt
R
tRtRtRtRtRRltRtRtVtR#)�_singlefileMailboxiuzA single-file mailbox.Nc�*�\PWW#4\VPR4pY@n
RTn^TnRTn
RTnRTnRTnR# \d�pTP
\
P8Xd9T'd\TPR4pRp?L\TP4hTP
\
P\
P39d\TPR4pRp?L�hRp?ii;i)z!Initialize a single-file mailbox.�rb+zwb+r NF)rr"r!rrr�ENOENTr�EACCES�EROFS�_filer��	_next_key�_pending�
_pending_sync�_locked�_file_length)rrrr r'rs&&&&  r!r"�_singlefileMailbox.__init__xs�������W�5�	��T�Z�Z��'�A��
���	������
�"������ ����!�		��w�w�%�,�,�&���T�Z�Z��/�A�,�T�Z�Z�8�8����U�\�\�5�;�;�7�7�����T�*����		�s*�A � D�+&D
�D
�-AD
�D
�
Dc���VP4VPV4VPVP&V;P^,
unRVnVP^,
#)r&T)r�_append_messager�r�r�r*s&&r!r,�_singlefileMailbox.add�sO������$(�$8�$8��$A��	�	�$�.�.�!����!���"����~�~��!�!r$c�P�VPV4VPVRVnR#)r0TN)rr�r�r1s&&r!r3�_singlefileMailbox.remove�s �����S���I�I�c�N���
r$c�r�VPV4VPV4VPV&RVnR#)r?TN)rr�r�r�r@s&&&r!rA�_singlefileMailbox.__setitem__�s-�����S���-�-�g�6��	�	�#����
r$c#�v"�VP4VPP4Rjx�L
R#L5irW)rr�rfras&r!rb�_singlefileMailbox.iterkeys�s"��������9�9�>�>�#�#�#�s�.9�7�9c�>�VP4WP9#r[)rr�r1s&&r!r|�_singlefileMailbox.__contains__�s�������i�i��r$c�L�VP4\VP4#r^)rr_r�ras&r!r��_singlefileMailbox.__len__�s�������4�9�9�~�r$c�f�VP'g\VP4RVnR#R#)r�TN)r��
_lock_filer�ras&r!r��_singlefileMailbox.lock�s#���|�|�|��t�z�z�"��D�L�r$c�f�VP'd\VP4RVnR#R#�r�FN)r��_unlock_filer�ras&r!r��_singlefileMailbox.unlock�s#���<�<�<�����$� �D�L�r$c	��VP'g1VP'd\VP4RVnR#VPfQhVPP^^4VPP
4pWP8wd\RVPV3,4h\VP4p/pVPV4\VPP44F�pVPV,wrVVPPV4VPV4VP
4pVPP\!RW`PP
4,
44pV'gMVP#V4K`WrP
43W4&VP%V4K�	VP
4Vn\/T4TPP'4\(P0!TP4p	\(P2!TP,T	P44\(P6!TP,T	P8T	P:4\(P@!TP,TP4\ETPR4TnY0nRTnRTnTPF'd\ITPRR7R#R# TP'4\(P*!TP,4h;i \<\>3dL�i;i \BdP\(P*!TP4\(P@!TP,TP4ELi;i)rbFNz4Size of mailbox file changed (expected %i, found %i)�r�)�dotlock)%r�r��_sync_flushr�r�r��tellr�r�_create_temporaryr�_pre_mailbox_hookrFrf�_pre_message_hookr��minr��_post_message_hookr�rr3r�r�r��chmod�st_mode�chown�st_uid�st_gidrrrr�r!r�r�)
r�cur_len�new_file�new_tocr2�start�stop�	new_startr�r5s
&         r!r��_singlefileMailbox.flush�s����}�}�}��!�!�!��D�J�J�'�%*��"��
�y�y�$�$�$�	
�
�
����1���*�*�/�/�#���'�'�'�$�&?�&*�&7�&7��%A�&B�C�
C�%�T�Z�Z�0��	��G��"�"�8�,��d�i�i�n�n�.�/��"�i�i��n����
�
����&��&�&�x�0�$�M�M�O�	��!�Z�Z�_�_�S��15�
�
���8I�1I�.K�L�F�!���N�N�6�*� )�=�=�?�;����'�'��1�0�!)�
�
��D��
	�H���
�
�����w�w�t�z�z�"��
���������-�	��H�H�X�]�]�D�K�K����=�	1��I�I�h�m�m�T�Z�Z�0��$�*�*�e�,��
��	���
�"����<�<�<��t�z�z�5�1���/	��N�N���I�I�h�m�m�$�����(�	��	���	1��I�I�d�j�j�!��I�I�h�m�m�T�Z�Z�0�	1�s2�
D'L#�%6M�+M0�#3M�M-�,M-�0AO
�	O
c��R#)�,Called before writing the mailbox to file f.Nrc�rr's&&r!r��$_singlefileMailbox._pre_mailbox_hookrgr$c��R#)�-Called before writing each message to file f.Nrcr�s&&r!r��$_singlefileMailbox._pre_message_hookrgr$c��R#��,Called after writing each message to file f.Nrcr�s&&r!r��%_singlefileMailbox._post_message_hookrgr$c��VP4VP'dVP4VPP	4R# TPP	4i;i TP'dTP4TPP	4i TPP	4i;i;irk)r�r�r�r�r�ras&r!r��_singlefileMailbox.closes���	#��J�J�L�
#��<�<�<��K�K�M��
�
� � �"���
�
� � �"��	
#��<�<�<��K�K�M��
�
� � �"���
�
� � �"�s.�A0�"A�A-�0C�2"B/�C�/C�Cc��VPfVP4VeVPV,#R# \d\RT,4Rhi;i)z'Return (start, stop) or raise KeyError.Nr�)r��
_generate_tocr;r1s&&r!r�_singlefileMailbox._lookups\���9�9����� ��?�
J��y�y��~�%����
J��8�3�>�?�T�I�
J�s	�9�Ac�X�VPP^^4VPP4p\VP4^8Xd.VP
'gVP
VP4VPVP4VPV4pVPVP4TPP4TPP4Tn
T# \dTPPT4hi;i)z;Append message to mailbox and return (start, stop) offsets.)r�r�r�r_r�r�r�r��_install_messager�r��truncater�r�)rr+�before�offsetss&&  r!r��"_singlefileMailbox._append_message%s����
�
����1�������"���t�y�y�>�Q��t�}�}�}�

�"�"�4�:�:�.�	��"�"�4�:�:�.��+�+�G�4�G��#�#�D�J�J�/�	
�
�
���� �J�J�O�O�-�������	��J�J����'��	�s
�?AD�(D))r�r�r�r�r�r�r�r�r6)r�r�r�r�r�r"r,r3rArbr|r�r�r�r�r�r�r�r�rr�r�r�r�s@r!r�r�us`���� �!�."���$�
 �
�
 �!�B2�H���	#�J��r$r�c�Ra�]tRtRtoRtRtRtRRltRRltRRlt	Rt
R	tVtR
#)�	_mboxMMDFi<zAn mbox or MMDF mailbox.Tc���VPV4wr#VPPV4VPP4P	\
R4P
R4pVPPW0PP4,
4pVPVP	\
R44pVPV4VPVR,4V#)rPr$rr�r�)rr�r�r�r�r��decoder�r��_message_factory�set_unixfrom�set_from)rr2r�r��	from_line�stringr(s&&     r!rI�_mboxMMDF.get_messageAs����l�l�3�'����
�
������J�J�'�'�)�1�1�'�3�?�F�F�w�O�	�������
�
���(9�!9�:���#�#�F�N�N�7�E�$B�C������#����Y�r�]�#��
r$c�l�\P!VPW44PVR7#)�3Return a string representation or raise a KeyError.)�unixfromrS)rr2�from_s&&&r!rX�_mboxMMDF.get_stringLs.���'�'��N�N�3�&�(�(1�	�5�	�(A�	Br$c�@�VPV4wr4VPPV4V'gVPP4VPP	W@PP4,
4pVP
\R4#)r
r�)rr�r�r�r�r�r�r�)rr2rr�r�rs&&&   r!rV�_mboxMMDF.get_bytesQsf���l�l�3�'����
�
�������J�J���!�������
�
���(9�!9�:���~�~�g�u�-�-r$c��VPV4wr4VPPV4V'gVPP4\	VPVPP4V4#)r])rr�r�r��_PartialFiler�)rr2rr�r�s&&&  r!rL�_mboxMMDF.get_fileZsS���l�l�3�'����
�
�������J�J���!��D�J�J��
�
���(9�4�@�@r$c��Rp\V\4'dVPV4p\V\4'dFVP	R4'd/VPR4pVR8wdVRVpW^,RpM�TpRpM�\V\4'd*VP4PR4pRV,pMO\V\PP4'd&VP4pVeVPR4pVf?R\P!\P!44P4,pVP P#4pVP P%V\&,4VP)WP VP*4VP P#4pWV3#)z1Format a message and blindly write to self._file.Nr�r�r$rsFrom MAILER-DAEMON r�)r�r�r�r�r��find�_mboxMMDFMessage�get_fromr�rTr+r	�get_unixfromr��asctime�gmtimer�r�r�r�r��
_mangle_from_)rr+r�newline�authorr�r�s&&     r!r��_mboxMMDF._install_messagebsg���	��g�s�#�#��+�+�G�4�G��g�u�%�%�'�*<�*<�X�*F�*F��l�l�5�)�G��"�}�#�H�W�-�	�!�A�+�,�/��#�	���
��!1�
2�
2��%�%�'�.�.�w�7�F� �6�)�I�
�����!6�!6�
7�
7��,�,�.�I��$�%�,�,�W�5�	���.����d�k�k�m�1L�1S�1S�1U�U�I��
�
���!���
�
����W�,�-����7�J�J��0B�0B�C��z�z��� ���}�r$rcNr�)
r�r�r�r�r�rrIrXrVrLr�r�r�r�s@r!rr<s-����"��M�	�B�
.�A��r$rc�Ba�]tRtRtoRtRtRtR	RltRtRt	Rt
VtR#)
rizA classic mbox mailbox.TNc�H�\Vn\PWW#4R#)zInitialize an mbox mailbox.N)rrrr"rs&&&&r!r"�
mbox.__init__���� +������4�w�7r$c�0�VP\4R#r��r�r�r�s&&r!r��mbox._post_message_hook�s��	����r$c�(�..r!RpVPP^4VPP4pVPP4pVP	R4'dn\V4\V48d@V'd'VP
V\\4,
4MVP
V4VP
V4RpK�V'gAV'd'VP
V\\4,
4MVP
V4MV\8XdRpEKRpEK\\\W444Vn\VP4VnVPP4Vn
R#)�0Generate key-to-(start, stop) table of contents.FTr�N)r�r�r�r�r�r_rtr��dict�	enumerate�zipr�r�r�)r�starts�stops�last_was_empty�line_posr�s&     r!r��mbox._generate_toc�s���B�����
�
�������z�z���(�H��:�:�&�&�(�D����x�(�(��u�:��F��+�%����X��G��%<�=�
���X�.��
�
�h�'�!&���!��L�L��C��L�!8�9��L�L��*�����!%��!&����3�v�#5�6�7��	��T�Y�Y���� �J�J�O�O�-��r$�r�rr�r�r�)r�r�r�r�r�rr�r"r�r�r�r�r�s@r!rrs(����!��M��O�8�
�.�.r$c�@a�]tRtRtoRtR	RltRtRtRtRt	Vt
R#)
ri�zAn MMDF mailbox.Nc�H�\Vn\PWW#4R#)zInitialize an MMDF mailbox.N)rrrr"rs&&&&r!r"�
MMDF.__init__�r!r$c�>�VPR\,4R#)r��Nr#r�s&&r!r��MMDF._pre_message_hook�s��	���#�g�-�.r$c�T�VP\R,\,4R#)r�r4Nr#r�s&&r!r��MMDF._post_message_hook�s��	����-�-��7�8r$c�:�..r!VPP^4^pTpVPP4pVPP4pVP	R\
,4'd�VP
V4TpVPP4pVPP4pVR\
,8Xd(VP
V\\
4,
4K�V'dKzVP
V4K�V'dEK\\\Y444Tn\TP4TnTPP^^4TPP4Tn
R#)r&r4N)r�r�r�r�r�r�rtr_r'r(r)r�r�r�)rr*r+�next_posr-r�s&     r!r��MMDF._generate_toc�s���B���
�
���������H��:�:�&�&�(�D��z�z���(�H����2�W�<�=�=��
�
�h�'��'�H��:�:�.�.�0�D�#�z�z���0�H��2�W�<�<����X��G��%<�=��!�T����X�.���T����3�v�#5�6�7��	��T�Y�Y�����
�
����1�� �J�J�O�O�-��r$r/r�)r�r�r�r�r�r"r�r�r�r�r�r�s@r!rr�s!�����8�
/�9�.�.r$c�a�]tRtRtoRtRRltRtRtRtRt	R	t
R
tRtRt
R
tRtRtRtRtRtRtRtRtRtRtRtRtRtRtVtR#)ri�zAn MH mailbox.Nc�4�\PWW#4\PP	VP
4'g�V'd�\P!VP
R4\P!\P!\PPVP
R4\P\P,\P,R44M\VP
4hRVnR#)zInitialize an MH instance.r��
.mh_sequencesi�FN)rr"rrr�rr�r�r!r�r��O_EXCLr�rr�rs&&&&r!r"�MH.__init__�s�������W�5��w�w�~�~�d�j�j�)�)��������U�+������������d�j�j�/�!J�!#���b�i�i�!7�"�+�+�!E�u�N�O�)����4�4���r$c��VP4p\V4^8Xd^pM\V4^,p\PPVP\V44p\V4pRpVP'd\V4VPW4\!T\"4'dTP%Y4TP'd\T4T'g\T4T# \dCTP'd\T4\T4Rp\P!T4hi;i TP'd
\T4ii;i T'g
\T4ii;i)r&FT)rfr_�maxrrr�rr�r�r�r�r�r�r�r�r3r�r�_dump_sequences)rr+rf�new_keyrr'�closeds&&     r!r,�MH.add�s$���y�y�{���t�9��>��G��$�i�!�m�G��7�7�<�<��
�
�C��L�9���h�'����	��|�|�|��1�
�
$�	��&�&�w�2��g�y�1�1��(�(��:��<�<�<� ��O���A�����!%���|�|�|�$�Q����N�!�F��I�I�h�'�����<�<�<� ��O� ����A���s<�7E3�D�''E�E3�E
�0E
�
E� E0�0E3�3F	c�\�\PPVP\	V44p\VR4pVP
4\P!V4R# \d8pTP\P8Xd\RT,4hhRp?ii;i)r0r�r�N)rrr�rr�r!r�r3rrr�r;)rr2rr'rs&&   r!r3�	MH.removes{���w�w�|�|�D�J�J��C��1��		��T�5�!�A�
�G�G�I��I�I�d�O���	��w�w�%�,�,�&��8�3�>�?�?���		�s�A)�)B+�42B&�&B+c��\PPVP\	V44p\VR4pTP'd\T4\P!\P
!T\P\P,44TPY$4\!T\"4'dTP%Y!4TP'd\'T4\)T4R# \d8pTP\P8Xd\RT,4hhRp?ii;i TP'd
\'T4ii;i \)T4i;i)r?r�r�N)rrr�rr�r!rrr�r;r�r�r�r��O_TRUNCr�r�rrBr�r�)rr2r+rr'rs&&&   r!rA�MH.__setitem__s���w�w�|�|�D�J�J��C��1��	��T�5�!�A�	��|�|�|��1�
�
$��������r�{�{�R�Z�Z�'?�@�A��"�"�7�.��g�y�1�1��(�(��6��<�<�<� ��O���N��#�	��w�w�%�,�,�&��8�3�>�?�?���		���<�<�<� ��O� ��
��N�sB�D�E8�E8� BE�&E8�E�2E
�
E� E5�5E8�8
Fc�L�VP'd?\\PP	VP
\
V44R4pM>\\PP	VP
\
V44R4pT;_uu_4VP'd\V4\V4pVP'd\V4RRR4TP4P4FwrVY9gK
XP!T4K 	X# \d8pTP\P8Xd\RT,4hhRp?ii;i TP'd
\T4ii;i +'giL�;i)rPr�r r�N)r�r!rrr�rr�rrr�r;r�rr��
get_sequencesrx�add_sequence)rr2r'rr(r��key_lists&&     r!rI�MH.get_message7s ��		��|�|�|�������d�j�j�#�c�(�;�U�C��������d�j�j�#�c�(�;�T�B���Q��|�|�|��1�
�
$���l���<�<�<� ��O��#�0�0�2�8�8�:�N�D���� � ��&�;��
��!�	��w�w�%�,�,�&��8�3�>�?�?���		���<�<�<� ��O� ��
�Q�sF�D+�=D+�=D+�F�9E0�F�+E-�62E(�(E-�0 F�F�F#	c��VP'd?\\PP	VP
\
V44R4pM>\\PP	VP
\
V44R4pT;_uu_4VP'd\V4VP4P\R4VP'd\V4uuRRR4# \d8pTP\P8Xd\RT,4hhRp?ii;i TP'd
\T4ii;i +'giR#;i)r+r�r r�Nr�)r�r!rrr�rr�rrr�r;r�r�r�r�r��rr2r'rs&&  r!rV�MH.get_bytesPs���		��|�|�|�������d�j�j�#�c�(�;�U�C��������d�j�j�#�c�(�;�T�B���Q��|�|�|��1�
�
$��v�v�x�'�'���7��<�<�<� ��O��Q���	��w�w�%�,�,�&��8�3�>�?�?���		���<�<�<� ��O� ��
�Q�Q�sF�D�=D�=D�E,�9#E	�E,�E�2E�E�	 E)�)E,�,E=	c��\\PPVP\V44R4p\T4# \d8pTP\P8Xd\RT,4hhRp?ii;i)r]r r�N)r!rrr�rr�rrr�r;r/rQs&&  r!rL�MH.get_fileesl��	��R�W�W�\�\�$�*�*�c�#�h�7��>�A��!�}����	��w�w�%�,�,�&��8�3�>�?�?���		�s�=A
�
B�2B�Bc�t�\\R\P!VP4444#)r`c3�h"�TF(pVP4'gK\V4x�K*	R#5ir6)�isdigitr�)�.0rvs& r!�	<genexpr>�MH.iterkeys.<locals>.<genexpr>rs(���:�3I�%�).����&�3�u�:�:�3I�s�2�2)�iterrFrrrrras&r!rb�MH.iterkeysps/���F�:�2�:�:�d�j�j�3I�:�:�;�	;r$c��\PP\PPVP\V444#r[)rrr�r�rr�r1s&&r!r|�MH.__contains__us,���w�w�~�~�b�g�g�l�l�4�:�:�s�3�x�@�A�Ar$c�F�\\VP444#r^)r_rerbras&r!r��
MH.__len__ys���4��
�
��(�)�)r$c�&�V'dRMRpV'dRR/M/p\PPVPR4p\	VRV,3/VB# \
dMi;i\	TRT,3/TB# \dKJi;i)r��b�encoding�ASCIIr=zr+zx+)rrr�rr!rr�)r�text�mode�kwargsrs&&   r!�_open_mh_sequences_file�MH._open_mh_sequences_file}s����r�s��*.�*�g�&�B���w�w�|�|�D�J�J��8���
��D�$��+�8��8�8��$�
��
��
��D�$��+�8��8�8��"�
��
�s$�A�A)�(A)�-B�B�Bc��VP'g6VPRR7Vn\VP4RVnR#R#)r�F�reTN)r�rhr�r�ras&r!r��MH.lock�s8���|�|�|��5�5�5�5�A�D�J��t�z�z�"��D�L�r$c��VP'd6\VP4\VP4V=RVnR#R#r�)r�r�r�r�ras&r!r��	MH.unlock�s4���<�<�<�����$���
�
�#��
� �D�L�	r$c��R#)r�Nrcras&r!r��MH.flush�rgr$c�N�VP'dVP4R#R#rk)r�r�ras&r!r��MH.close�s���<�<�<��K�K�M�r$c��.p\P!VP4Fcp\PP	\PPVPV44'gKRVP
V4Ke	V#)rn)rrrrrrsr�rtrus&  r!rw�MH.list_folders�sW�����Z�Z��
�
�+�E��w�w�}�}�R�W�W�\�\�$�*�*�e�<�=�=��
�
�e�$�,��
r$c��\\PPVPV4VP
RR7#)z+Return an MH instance for the named folder.Frz�rrrr�rrr{s&&r!r}�
MH.get_folder�s-���"�'�'�,�,�t�z�z�6�2��-�-��7�	7r$c��\\PPVPV4VP
R7#)z:Create a folder and return an MH instance representing it.r�rvr{s&&r!r��
MH.add_folder�s+���"�'�'�,�,�t�z�z�6�2��-�-�)�	)r$c�t�\PPVPV4p\P!V4pVR.8Xd6\P
!\PPVR44M$V.8XdM\
RVP,4h\P!V4R#)r�r=zFolder not empty: %sN)rrr�rrrr3rr�)rr|r�entriess&&  r!r��MH.remove_folder�sx���w�w�|�|�D�J�J��/���*�*�T�"����'�'��I�I�b�g�g�l�l�4��9�:�
��]��� 6���� C�D�D�
����r$c�Z�/p\\PPVPR4RRR7pT;_uu_4\
TP44pTF�pTPR4wrV\
4pTP4FppTP4'dTP\T44K5RTPR44wr�TP\Y�^,44Kr	\T4Uu.uF
pY�9gKTNK	upY&\Y,4^8XdYK�K�	R	R	R	4T# \
dTu#i;iuupi \ d"\#RTP%4,4hi;i +'giT#;i)
z=Return a name-to-key-list dictionary to define each sequence.r=�rrd)rcr�c3�8"�TFp\V4x�K	R#5ir6)r�)rX�xs& r!rY�#MH.get_sequences.<locals>.<genexpr>�s���*K�?�a�3�q�6�6�?�s��-z"Invalid sequence specification: %sN)r!rrr�rrrGrfr�rWr,r�r��rangerFr_r�r�rstrip)r�resultsr'�all_keysr�r��contentsrf�specr�r�r2s&           r!rL�MH.get_sequences�se����	��R�W�W�\�\�$�*�*�o�>��g�V�A��Q��4�9�9�;�'�H���5�%)�Z�Z��_�N�D��5�D� (��� 0���<�<�>�>� �H�H�S��Y�/�*K�4�:�:�c�?�*K�K�E� �K�K��e�A�X�(>�?�!1�5;�4�L�%=�L�S�,/�O�&)�S�L�%=�G�M��7�=�)�Q�.�#�M�/���&���+!�	��N�	��%=��"�5�%�&J�&*�k�k�m�'4�5�5�5��!�Q�&��sN�6E�F�$B.E*�E%
�E%
�%E*�F�
E"�!E"�%E*�*,F	�F�F*	c��VPRR7p\P!\P!VP\P
\P,44VP4F�wr4\V4^8XdKVPVR,4RpRp\\V44FjpV^,
V8XdV'gRpVPR4M;V'dRpVPV:RV:24MVPRV,4TpKl	V'd$VP\V4R	,4K�VPR	4K�	\V4R# \T4i;i)
z:Set sequences using the given name-to-key-list dictionary.Trkr�NFr�� z %s�
)rhrr�r!r�r�rIrxr_r�rFrGr�r�)r�	sequencesr'r�rf�prev�
completingr2s&&      r!�
set_sequences�MH.set_sequences�s���(�(�d�(�3��	��H�H�R�W�W�Q�V�V�R�[�[�2�:�:�%=�>�?�'�o�o�/�
���t�9��>������s�
�#���"�
�!�#�d�)�,�C��Q�w�$��)�)-�J��G�G�C�L��#�%*�
����4�� 5�6�������,��D�-���G�G�C��I��,�-��G�G�D�M�)0�,
��N��K��N�s�CE>�E>�8AE>�98E>�>
Fc�\�VP4p^p.pVP4F�pV^,
V8wd�VPWB^,34\P!\P
P
VP\V44\P
P
VP\V^,444\P!\P
P
VP\V444V^,
pK�	V^,Vn
\V4^8XdR#VP4F+wrVVF wrxWv9gK
W�VP!V4&K"	K-	VP#V4R# \\3d�\P!\P
P
TP\T44\P
P
TP\T^,444ELi;i)z?Re-name messages to eliminate numbering gaps. Invalidates keys.N)rLrbrtrrrr�rr��unlinkrrrr�r_rx�indexr�)	rr�r��changesr2r�rN�oldr�s	&        r!�pack�MH.pack�s|���&�&�(�	������=�=�?�C��Q�w�$������A�X��/�B��G�G�B�G�G�L�L����S��X�>��G�G�L�L����S����]�C�E��I�I�b�g�g�l�l�4�:�:�s�3�x�@�A��A�I�D�#�������w�<�1���'�o�o�/�N�D�#����?�47�X�^�^�C�0�1�$�0�	
���9�%��'��8�G��I�I�b�g�g�l�l�4�:�:�s�3�x�@� �g�g�l�l�4�:�:�s�4�!�8�}�E�G�G�s�BF�BH+�*H+c�*�VP4pVP4pVP4F7wrVWS9dVPV4KW&9gK&WfPV4K9	VFpWt9gKV.WG&K	VP	V4R#)z;Inspect a new MHMessage and update sequences appropriately.N)rLrxrtr�r�)rr+r2�pending_sequences�
all_sequencesr�rN�sequences&&&     r!rB�MH._dump_sequencess���#�1�1�3���*�*�,�
�+�1�1�3�N�D��(�����$����^�^�C�0�1�	4�
*�H��,�+.�%�
�'�*�	
���=�)r$)r�r�r�r�)r�r�r�r�r�r"r,r3rArIrVrLrbr|r�rhr�r�r�r�rwr}r�r�rLr�r�rBr�r�r�s@r!rr�s������
� �D��0�2$�*	�;�
B�*�� �!���
�7�
)�

��8�:&�4*�*r$c�a�]tRtRtoRt]!0Rm4tRRltRtRt	Rt
RtR	tR
t
RtRtR
tRtRtRtRtVtR#)ri#zAn Rmail-style Babyl mailbox.Nc�@�\PWW#4/VnR#)zInitialize a Babyl mailbox.N)r�r"�_labelsrs&&&&r!r"�Babyl.__init__)s���#�#�D��@���r$c��\PW4p\V\4'dVP	4VP
V&V#)r&)r�r,r�r
�
get_labelsr�)rr+r2s&& r!r,�	Babyl.add.s;�� �$�$�T�3���g�|�,�,� '� 2� 2� 4�D�L�L����
r$c�n�\PW4WP9dVPVR#R#r)r�r3r�r1s&&r!r3�Babyl.remove5s+���!�!�$�,��,�,�����S�!�r$c��\PWV4\V\4'd VP	4VP
V&R#R#)r?N)r�rAr�r
r�r�r@s&&&r!rA�Babyl.__setitem__;s;���&�&�t�'�:��g�|�,�,� '� 2� 2� 4�D�L�L���-r$c���VPV4wr#VPPV4VPP4\P
!4pVPP4pVR\,8Xg	V'gM'VPVP\R44K]\P
!4pVPP4pV\8Xg	V'gM'VPVP\R44KVW0PP4,
pV^8�gQhVPPV4pVP\R4p\VP4V,4p	V	PVP44WP9d#V	PVPV,4V	#)rP�*** EOOH ***r�)rr�r�r�r�r�r�r�r�r�r�r
r��set_visibler��
set_labels)
rr2r�r��original_headersr��visible_headers�n�bodyr(s
&&        r!rI�Babyl.get_messageAsU���l�l�3�'����
�
������
�
�����:�:�<����:�:�&�&�(�D����0�0����"�"�4�<�<���#?�@��*�*�,����:�:�&�&�(�D��w��d���!�!�$�,�,�w��">�?��:�:�?�?�$�$���A�v�
�v��z�z���q�!���|�|�G�U�+���+�4�4�6��=�>������0�0�2�3��,�,���N�N�4�<�<��,�-��
r$c��VPV4wr#VPPV4VPP4\P
!4pVPP4pVR\,8Xg	V'gM'VPVP\R44K]VPP4pV\8XgV'dK0TP4pY0PP4,
pT^8�gQhTPPT4pTP\R4pYh,#)r
r�r�)rr�r�r�r�r�r�r�r�r�r�r�)	rr2r�r�r�r��headersr�r�s	&&       r!rV�Babyl.get_bytes]s����l�l�3�'����
�
������
�
�����:�:�<����:�:�&�&�(�D����0�0����"�"�4�<�<���#?�@���:�:�&�&�(�D��w��d�d��"�+�+�-���:�:�?�?�$�$���A�v�
�v��z�z���q�!���|�|�G�U�+���~�r$c�t�\P!VPV4PR\44#)r]r�)r�r�rVr�r�r1s&&r!rL�Babyl.get_filess'���z�z�$�.�.��-�5�5�e�W�E�F�Fr$c���VP4\4pVPP4FpVP	V4K	VPVP4\V4#)z4Return a list of user-defined labels in the mailbox.)rrGr�rrr��difference_update�_special_labelsre)r�labels�
label_lists&  r!r��Babyl.get_labelswsS����������,�,�-�-�/�J��M�M�*�%�0�� � ��!5�!5�6��F�|�r$c��..r!VPP^4^p.pTpVPP4pVPP4pVR\,8Xd�\V4\V48d&VP
V\\4,
4VP
V4VPP4R,PR4Uu.uF+pVP4'gKVP4NK-	ppVP
V4EKVR8XgVR\,8XdE\V4\V48d)VP
V\\4,
4EKkEKnV'dEKyVP
V\\4,
4\\\Y444Tn\\T44Tn
\TP4TnTPP^^4TPP4TnR#uupi)r&srp�,�N)r�r�r�r�r�r_rtr��stripr'r(r)r�r�r�r�)	rr*r+r9�label_listsr-r��labelr�s	&        r!r��Babyl._generate_toc�s����B���
�
�����������H��:�:�&�&�(�D��z�z���(�H��{�W�,�,��u�:��F��+��L�L��C��L�!8�9��
�
�h�'�+/�:�:�+>�+>�+@��+D�+J�+J�4�+P�:�+P�-2�+0�;�;�=�(�%�+�+�-�+P��:��"�"�6�*����D�G�g�,=�$=��u�:��F��+��L�L��C��L�!8�9�,��T����X��G��4�5����3�v�#5�6�7��	��I�k�2�3����T�Y�Y�����
�
����1�� �J�J�O�O�-����:s�-I�
Ic��R\,pVR\,,
pVP4pRV4pVRRPV4,\,,
pVR,
pVPV4R#)r�sBABYL OPTIONS:s
Version: 5c3�@"�TFqP4x�K	R#5ir6)r�)rXr�s& r!rY�*Babyl._pre_mailbox_hook.<locals>.<genexpr>�s���5�f�U�,�,�.�.�f�s�sLabels:r�r�N)r�r�r�r�)rr'�babylr�s&&  r!r��Babyl._pre_mailbox_hook�sc��!�G�+��
���(�(�����"��5�f�5��
��d�i�i��/�/�'�9�9��
����	����r$c�>�VPR\,4R#)r��Nr#r�s&&r!r��Babyl._pre_message_hook�s��	����'�!�"r$c�>�VP\R,4R#)r�r�Nr#r�s&&r!r��Babyl._post_message_hook�s��	����'�!�"r$c���VPP4p\V\4'Ed.p.pVP	4F7pWPP
9dVP
V4K&VP
V4K9	VPPR4VF3pVPPRVP4,4K5	VPPR4VF:pVPPRVP4,R,4K<	VPP\4M&VPPR\,4\V\PP4'Ed>\P!4p\PP!VR^4pVP#V4VP%^4VP'4pVPPVP)R	\44VR	8XgV'dKQTPPR
\,4\T\4'd�\P!4p	\PP!T	R^4p
T
P#TP+44T	P'4pTPPTP)R	\44TR	8XgT'dKQMcTP%^4TP'4pTPPTP)R	\44TR	8XgT'dKQTP-R4pT'gEMTPPTP)R	\44KM\V\.\0\P234'Ed�\V\P24'd-\4P6!R\8^4VP;4p\V\04'dVP=V4pVP?R
4^,pV^,
R8wd�VPPVRVP)R	\44VPPR
\,4VPPVRVP)R	\44VPPWRP)R	\44EMfVPPR
\,\,4VPPVP)R	\44EM\AVR4'Ed�\AVR4'd)\4P6!R\8^4VPBpVP4p
RpVP'4pVPER4'dVRRR	,pM#VPER4'd
VRRR	,pVPPVP)R	\44VR	8XgV'dK�V'd<RpVPPR
\,4VP%V
4K�TP'4pT'gM�TPER4'dTRR\,pMOTPER4'dTRR\,pM'TPER	4'dTRR\,pTPPT4K�\GR\IV4,4hVPP4pW/3#)z0Write message contents and return (start, stop).�1s, s,,� r�s1,,FTr�r�r�r�s

Nr�r�r�r�r�r�r�r�)%r�r�r�r
r�r�rtr�r�r�rTr+r	r�r�r�r�r�r�r�r��get_visibler�r�r�r�r�r�r�r�r�rr�r�r�r�r�)rr+r��special_labelsr�r��orig_buffer�orig_generatorr��
vis_buffer�
vis_generatorr��
body_start�original_pos�
first_passr�s&&              r!r��Babyl._install_message�s����
�
���!���g�|�,�,��N��F� �+�+�-���0�0�0�"�)�)�%�0��M�M�%�(�	.�

�J�J���T�"�'���
�
� � ������!7�8�(��J�J���U�#����
�
� � ������!6��!=�>� ��J�J���W�%��J�J���V�g�-�.��g�u�}�}�4�4�5�5��*�*�,�K�"�_�_�;�;�K��PQ�R�N��"�"�7�+����Q���"�+�+�-���
�
� � ����e�W�!=�>��5�=�����J�J���_�w�6�7��'�<�0�0��Z�Z�\�
� %��� >� >�z�5�RS� T�
��%�%�g�&9�&9�&;�<��%�.�.�0�D��J�J�$�$�T�\�\�%��%A�B��u�}�D�D��� � ��#��&�/�/�1�D��J�J�$�$�T�\�\�%��%A�B��u�}�D�D���$�)�)�$�/�����
�
� � �����w�!?�@�
��%��b�k�k�!:�
;�
;��'�2�;�;�/�/��
�
�*�+=�q�B�!�*�*�,���'�3�'�'��/�/��8�� ���g�.��2�J��A�~��#��
�
� � ���*�!5�!=�!=�e�W�!M�N��
�
� � ��7�!:�;��
�
� � ���*�!5�!=�!=�e�W�!M�N��
�
� � ���!5�!=�!=�e�W�!M�N��
�
� � ��7�!:�W�!D�E��
�
� � ������!@�A�
�W�j�
)�
)��w��)�)��
�
�5�6H�!�M�!�.�.��"�<�<�>�L��J���'�'�)���=�=��)�)����9�u�,�D��]�]�5�)�)����9�u�,�D��
�
� � ����e�W�!=�>��5�=���!�%*�
��
�
�(�(��7�)B�C����\�2����'�'�)�����=�=��)�)����9�w�.�D��]�]�5�)�)����9�w�.�D��]�]�5�)�)����9�w�.�D��
�
� � ��&��6��g��F�G�G��z�z��� ���}�r$)r�r�r�r�>�filed�edited�resent�unseen�deleted�answered�	forwardedr�)r�r�r�r�r��	frozensetr�r"r,r3rArIrVrLr�r�r�r�r�r�r�r�r�s@r!rr#sb����'��!B�C�O��
�"�5��8�,G��.�<�#�#�i�ir$c�:a�]tRtRtoRtRRltRtRtRtVt	R#)	r	iz0Message with mailbox-format-specific properties.Nc�~�\V\PP4'dQVP	\
P!V44\V\4'dVPV4R#R#\V\4'd(VP	\P!V44R#\V\4'd(VP	\P!V44R#\V\P4'd(VP	\P!V44R#\VR4'd(VP	\P !V44R#Vf,\PPP#V4R#\%R\'V4,4h)zInitialize a Message instance.r�Nr�)r�rTr+r	�_become_message�copy�deepcopy�_explain_tor�rUr��message_from_stringr��
TextIOWrapper�message_from_filer��message_from_binary_filer"r�r�r*s&&r!r"�Message.__init__s ���g�u�}�}�4�4�5�5�� � ����w�!7�8��'�7�+�+��#�#�D�)�,�
���
'�
'�� � ��!9�!9�'�!B�C�
���
%�
%�� � ��!:�!:�7�!C�D�
���!1�!1�
2�
2�� � ��!8�!8��!A�B�
�W�f�
%�
%�� � ��!?�!?��!H�I�
�_��M�M�!�!�*�*�4�0��6��g��F�G�Gr$c��\VR.4pVPF+pW29gKVPV,VPV&K-	R#)z0Assume the non-format-specific state of message.�_type_specific_attributesN)�getattr�__dict__)rr+�
type_specificr�s&&  r!r��Message._become_message2s@����)D�b�I�
��$�$�D��(�&-�&6�&6�t�&<��
�
�d�#�%r$c�H�\V\4'dR#\R4h)z:Copy format-specific state to message insofar as possible.Nz Cannot convert to specified type)r�r	r�r*s&&r!r��Message._explain_to9s���g�w�'�'���>�?�?r$rcr6)
r�r�r�r�r�r"r�r�r�r�r�s@r!r	r	s����:�H�&=�@�@r$c�xa�]tRtRtoRt.ROtRRltRtRtRt	Rt
R	tR
tRt
RtR
tRtRtRtVtR#)r
iAz)Message with Maildir-specific properties.Nc��RVnRVn\P!4Vn\PW4R#)z%Initialize a MaildirMessage instance.r�r�N)�_subdir�_infor��_dater	r"r*s&&r!r"�MaildirMessage.__init__Fs+�������
��Y�Y�[��
�����'r$c��VP#)zReturn 'new' or 'cur'.)r�ras&r!r��MaildirMessage.get_subdirMs���|�|�r$c�R�VR8XgVR8Xd	WnR#\RV,4h)zSet subdir to 'new' or 'cur'.r�r�z!subdir must be 'new' or 'cur': %sN)r�r�)rr
s&&r!r"�MaildirMessage.set_subdirQs%���U�?�f��o�!�L��@�6�I�J�Jr$c�n�VPPR4'dVPR,#R#)�*Return as a string the flags that are set.r?r@r�)r�r�ras&r!rA�MaildirMessage.get_flagsXs(���:�:� � ��&�&��:�:�b�>�!�r$c�R�RRP\V44,VnR#)�)Set the given flags and unset all others.r?r�N)r�rFr�)rrDs&&r!rH�MaildirMessage.set_flags_s���B�G�G�F�5�M�2�2��
r$c��VPRP\VP44\V4,44R#�z.Set the given flag(s) without changing others.r�N�rHr�rGrA�rrLs&&r!rP�MaildirMessage.add_flagc�,�����r�w�w�s�4�>�>�#3�4�s�4�y�@�A�Br$c���VP4'dJVPRP\VP44\V4,
44R#R#)�7Unset the given string flag(s) without changing others.r�N)rArHr�rGr	s&&r!rT�MaildirMessage.remove_flaggs>���>�>����N�N�2�7�7�3�t�~�~�'7�#8�3�t�9�#D�E�F�r$c��VP#)z<Return delivery date of message, in seconds since the epoch.)r�ras&r!r�MaildirMessage.get_datel����z�z�r$c�l�\V4VnR# \d\RT,4Rhi;i)z9Set delivery date of message, in seconds since the epoch.zcan't convert to float: %sN)�floatr�r�r�)r�dates&&r!r$�MaildirMessage.set_dateps7��	K��t��D�J���	K��8�4�?�@�d�J�	K�s��3c��VP#)z%Get the message's "info" as a string.)r�ras&r!r��MaildirMessage.get_infowrr$c�t�\V\4'd	WnR#\R\	V4,4h)z Set the message's "info" string.zinfo must be a string: %sN)r�r�r�r�r�)rr5s&&r!r#�MaildirMessage.set_info{s)���d�C� � ��J��7�$�t�*�D�E�Er$c�D�\V\4'd`VPVP44VP	VP44VP
VP44R#\V\4'd�\VP44pRV9dVPR4VP4R8XdVPR4RV9dVPR4RV9dVPR4RV9dVPR4VPR	\P!VP444R#\V\4'df\VP44pRV9dVPR
4RV9dVPR4RV9dVPR4R#R#\V\ 4'd~\VP44pRV9dVP#R
4RV9dVP#R
4RV9dVP#R4RV9dVP#R4R#R#\V\$4'dR#\'R\)V4,4h)z;Copy Maildir-specific state to message insofar as possible.�S�Rr��O�T�D�F�A�
MAILER-DAEMONr��replied�flaggedr�r�r�r��$Cannot convert to specified type: %sN)r�r
rHrAr"r�r$rrrGrPrr�rrrMr
�	add_labelr	r�r�)rr+rDs&& r!r��MaildirMessage._explain_to�s���g�~�.�.����d�n�n�.�/����t���0�1����T�]�]�_�-�
��!1�
2�
2�����(�)�E��e�|�� � ��%���� �E�)�� � ��%��e�|�� � ��%��e�|�� � ��%��e�|�� � ��%����_�d�k�k�$�-�-�/�.J�K�
���
+�
+�����(�)�E��%���$�$�X�.��e�|��$�$�Y�/��e�|��$�$�Y�/��
���
.�
.�����(�)�E��%���!�!�(�+��e�|��!�!�)�,��e�|��!�!�*�-��e�|��!�!�+�.��
���
)�
)���B� ��M�*�+�
+r$)r�r�r�)r�r�r�r6)r�r�r�r�r�r�r"r�r"rArHrPrTrr$r�r#r�r�r�r�s@r!r
r
AsT����3� =��(��K��3�C�G�
�K��F�)+�)+r$c�ba�]tRtRtoRtR.tRRltRtRRltRt	R	t
R
tRtRt
R
tVtR#)ri�z/Message with mbox- or MMDF-specific properties.�_fromNc�.�VPRR4\V\PP4'dDVP4pVe0VP
R4'dVPVR,4\PW4R#)z'Initialize an mboxMMDFMessage instance.r"TNzFrom r�)rr�rTr+r	rr�r")rr+rs&& r!r"�_mboxMMDFMessage.__init__�si���
�
�o�t�,��g�u�}�}�4�4�5�5��+�+�-�H��#��(;�(;�G�(D�(D��
�
�h�r�l�+�����'r$c��VP#)z Return contents of "From " line.�r)ras&r!r�_mboxMMDFMessage.get_from�rr$c��Ve@VRJd\P!4pVR\P!V4,,
pWnR#)z>Set "From " line, formatting and appending time_ if specified.NTr�)r�rrr))rr�time_s&&&r!r�_mboxMMDFMessage.set_from�s7������}����
���S�4�<�<��.�.�.�E��
r$c�T�VPRR4VPRR4,#)r�Statusr��X-Status)rFras&r!rA�_mboxMMDFMessage.get_flags�s#���x�x��"�%�����R�(@�@�@r$c���\V4pRRr2RF$pWA9gKW$,
pVPV4K&	RF$pWA9gKW4,
pVPV4K&	VRP\V44,
pVP	RV4VP	RV4R# \
dTP
RT4L4i;i \
dTP
RT4R#i;i)rr�r3r4N)rr)rr r!)rGr3r�rF�replace_headerr;�
add_header)rrD�status_flags�
xstatus_flagsrLs&&   r!rH�_mboxMMDFMessage.set_flags�s����E�
��&(�"�m��D��}��$�����T�"��$�D��}��%�
����T�"�$�	�������/�/�
�	4�����,�7�	7����
�M�:���	4��O�O�H�l�3�	4���	7��O�O�J�
�6�	7�s$�B,�C�,C�C�C0�/C0c��VPRP\VP44\V4,44R#rrr	s&&r!rP�_mboxMMDFMessage.add_flag�rr$c��RV9gRV9dJVPRP\VP44\V4,
44R#R#)r
r3r4r�Nrr	s&&r!rT�_mboxMMDFMessage.remove_flag�s@���t��z�T�1��N�N�2�7�7�3�t�~�~�'7�#8�3�t�9�#D�E�F� 2r$c�v�\V\4'Ed\VP44pRV9dVP	R4RV9dVPR4RV9dVPR4RV9dVPR4RV9dVPR4VR	VR
RP
VP4P4RR4pVP\P!\P!VR
444R#\V\ 4'dAVP#VP44VP%VP44R#\V\&4'dj\VP44pRV9dVP)R4RV9dVP)R4RV9dVP)R4VR	VR
R#\V\*4'dj\VP44pRV9dVP-R4RV9dVP-R4RV9dVP-R4VR	VR
R#\V\.4'dR#\1R\3V4,4h \\3dR#i;i)zACopy mbox- or MMDF-specific state to message insofar as possible.rr�r r!rrrr�statuszx-statusr�Nz%a %b %d %H:%M:%S %Yr�r#r$r�r�r%���)r�r
rGrAr"rPr�rr�r$�calendar�timegmr��strptimer��
OverflowErrorrrHrrrMr
r&r	r�r�)rr+rD�
maybe_dates&&  r!r��_mboxMMDFMessage._explain_to�sH���g�~�.�.�����(�)�E��e�|��"�"�5�)��e�|�� � ��%��e�|�� � ��%��e�|�� � ��%��e�|�� � ��%���!��
�#����$�-�-�/�"7�"7�"9�"�#�">�?�J�
�� � �������z�6L�2N�"O�P���!1�
2�
2����d�n�n�.�/����T�]�]�_�-�
���
+�
+�����(�)�E��%���$�$�X�.��e�|��$�$�Y�/��e�|��$�$�Y�/���!��
�#�
���
.�
.�����(�)�E��%���!�!�(�+��e�|��!�!�)�,��e�|��!�!�*�-���!��
�#�
���
)�
)���B� ��M�*�+�
+��9�
�.�
��
�s� :J#�#J8�7J8r-r6)r�r�r�r�r�r�r"rrrArHrPrTr�r�r�r�s@r!rr�s@����9�!(�	��(���A�7�,C�G�
1+�1+r$rc��]tRtRtRtRtR#)riz&Message with mbox-specific properties.rcN�r�r�r�r�r�r�rcr$r!rr���0r$c�Ra�]tRtRtoRtR.tRRltRtRtRt	R	t
R
tRtVt
R#)
ri#z$Message with MH-specific properties.�
_sequencesNc�>�.Vn\PW4R#)z!Initialize an MHMessage instance.N)rMr	r"r*s&&r!r"�MHMessage.__init__(s���������'r$c�(�VPR,#)z4Return a list of sequences that include the message.�NNN�rMras&r!rL�MHMessage.get_sequences-s�����q�!�!r$c�&�\V4VnR#)z3Set the list of sequences that include the message.N)rerM)rr�s&&r!r��MHMessage.set_sequences1s
���y�/��r$c���\V\4'd0WP9gVPPV4R#R#\	R\V4,4h)z8Add sequence to list of sequences including the message.zsequence type must be str: %sN)r�r�rMrtr�r��rr�s&&r!rM�MHMessage.add_sequence5sG���h��$�$����.����&�&�x�0�/��;�d�8�n�L�M�Mr$c�b�VPPV4R# \dR#i;i)zARemove sequence from the list of sequences including the message.N)rMr3r�rWs&&r!�remove_sequence�MHMessage.remove_sequence=s+��	��O�O�"�"�8�,���	��	����.�.c��\V\4'd�\VP44pRV9dVP	R4M"VP	R4VPR4RV9dVPR4RV9dVPR4R
#R
#\V\4'dx\VP44pRV9dVPR4MVPR	4RV9dVPR4RV9dVPR
4R
#R
#\V\4'd+VP4FpVPV4K	R
#\V\4'dN\VP44pRV9dVPR4RV9dVPR4R
#R
#\V\4'dR
#\R\V4,4h)z6Copy MH-specific state to message insofar as possible.r�r�rr$r r#r�ROrr!r�r%N)r�r
rGrLr"rPrrrMr
r&r	r�r�)rr+r�r�s&&  r!r��MHMessage._explain_toDs����g�~�.�.��D�.�.�0�1�I��9�$��"�"�5�)��"�"�5�)�� � ��%��I�%�� � ��%��I�%�� � ��%�&�
��!1�
2�
2��D�.�.�0�1�I��y�(�� � ��&�� � ��%��I�%�� � ��%��I�%�� � ��%�&�
���
+�
+� �.�.�0���$�$�X�.�1�
���
.�
.��D�.�.�0�1�I��9�$��!�!�(�+��I�%��!�!�*�-�&�
���
)�
)���B� ��M�*�+�
+r$rRr6)r�r�r�r�r�r�r"rLr�rMrZr�r�r�r�s@r!rr#s4����.�!-���(�
"�*�N��$+�$+r$c�fa�]tRtRtoRtRR.tRRltRtRtR	t	R
t
RtRtR
t
RtRtVtR#)r
ikz'Message with Babyl-specific properties.r��_visibleNc�\�.Vn\4Vn\PW4R#)z#Initialize a BabylMessage instance.N)r�r	rar"r*s&&r!r"�BabylMessage.__init__ps ������	��
�����'r$c�(�VPR,#)z'Return a list of labels on the message.rQ)r�ras&r!r��BabylMessage.get_labelsvs���|�|�A��r$c�&�\V4VnR#)z&Set the list of labels on the message.N)rer�)rr�s&&r!r��BabylMessage.set_labelszs
���F�|��r$c���\V\4'd0WP9dVPPV4R#R#\	R\V4,4h)z+Add label to list of labels on the message.zlabel must be a string: %sN)r�r�r�rtr�r��rr�s&&r!r&�BabylMessage.add_label~sG���e�S�!�!��L�L�(����#�#�E�*�)��8�4��;�F�G�Gr$c�b�VPPV4R# \dR#i;i)z4Remove label from the list of labels on the message.N)r�r3r�ris&&r!�remove_label�BabylMessage.remove_label�s+��	��L�L����&���	��	�r\c�,�\VP4#)z3Return a Message representation of visible headers.�r	raras&r!r��BabylMessage.get_visible�s���t�}�}�%�%r$c�&�\V4VnR#)z2Set the Message representation of visible headers.Nro)r�visibles&&r!r��BabylMessage.set_visible�s����(��
r$c�&�VPP4F:pW9d%VPPWV,4K-VPVK<	RF2pW9gKWP9gKW,VPV&K4	R#)z9Update and/or sensibly generate a set of visible headers.N)�Date�FromzReply-To�To�CC�Subject)rarfr7)r�headers& r!�update_visible�BabylMessage.update_visible�sl���m�m�(�(�*�F��~��
�
�,�,�V�&�\�B��M�M�&�)�	+�
J�F��~�&�
�
�"=�(,���
�
�f�%�Jr$c��\V\4'd�\VP44pRV9dVP	R4M"VP	R4VPR4RV9gRV9dVPR4RV9dVPR4R	V9dVPR
4R#R#\V\4'dx\VP44pRV9dVPR4MVPR4R	V9dVPR
4RV9dVPR4R#R#\V\4'dN\VP44pRV9dVPR4RV9dVPR4R#R#\V\4'dJVPVP44VP4FpVPV4K	R#\V\4'dR#\R\V4,4h)z9Copy Babyl-specific state to message insofar as possible.r�r�rr�r�r�r�rr�rr^rrr!r#r%N)r�r
rGr�r"rPrrrMr
r�r�r&r	r�r�)rr+r�r�s&&  r!r��BabylMessage._explain_to�s����g�~�.�.�����*�+�F��6�!��"�"�5�)��"�"�5�)�� � ��%��f�$��F�(:�� � ��%��V�#�� � ��%��F�"�� � ��%�#�
��!1�
2�
2�����*�+�F��v�%�� � ��&�� � ��%��F�"�� � ��%��V�#�� � ��%�$�
���
+�
+�����*�+�F��6�!��$�$�X�.��V�#��$�$�Y�/�$�
���
.�
.����� 0� 0� 2�3����*���!�!�%�(�+�
���
)�
)���B� ��M�*�+�
+r$)r�rar6)r�r�r�r�r�r�r"r�r�r&rlr�r�r{r�r�r�r�s@r!r
r
ksF����1�!*�J� 7��(��$�H��&�)�	5�'+�'+r$c��]tRtRtRtRtR#)ri�z&Message with MMDF-specific properties.rcNrJrcr$r!rr�rKr$c�a�]tRtRtoRtRRltRRltRRltRRltRRlt	R	t
R
tRRltRt
R
tRtRtRtRtRtRt]R4t]!]4tRtVtR#)r/i�zA read-only wrapper of a file.Nc�T�WnVfVP4VnR#W nR#)zInitialize a _ProxyFile.N)r�r��_pos)rr'�poss&&&r!r"�_ProxyFile.__init__�s���
��;�����D�I��Ir$c�L�VPWPP4#�zRead bytes.)�_readr�r��r�sizes&&r!r��_ProxyFile.read�s���z�z�$�
�
���0�0r$c�L�VPWPP4#r�)r�r��read1r�s&&r!r��_ProxyFile.read1�s���z�z�$�
�
� 0� 0�1�1r$c�L�VPWPP4#)zRead a line.)r�r�r�r�s&&r!r��_ProxyFile.readline�s���z�z�$�
�
� 3� 3�4�4r$c��.pVF6pVPV4VfKV\V4,pV^8:gK5V#	V#)zRead multiple lines.)rtr_)r�sizehintr�r�s&&  r!�	readlines�_ProxyFile.readlines�sG�����D��M�M�$���#��C��I�%���q�=���
�
��
r$c#�J"�VP4;p'dVx�KR#5i)zIterate over lines.N)r�)rr�s& r!ro�_ProxyFile.__iter__�s ����m�m�o�%�d�%��J�&�s�#�#c��VP#)zReturn the position.)r�ras&r!r��_ProxyFile.tell�s���y�y�r$c���V^8Xd&VPPVP4VPPW4VPP4VnR#)zChange position.N�r�r�r�r��r�offset�whences&&&r!r��_ProxyFile.seek�s?���Q�;��J�J�O�O�D�I�I�&��
�
����'��J�J�O�O�%��	r$c��\VR4'd<\VPR4'dVPP4V=R#R# T=i;i)zClose the file.r�r�N)r�r�r�ras&r!r��_ProxyFile.closesH���4��!�!�
��4�:�:�w�/�/��J�J�$�$�&��J�"��
�J�s�6A�Ac��VfRpVPPVP4V!V4pVPP4VnV#)z"Read size bytes using read_method.r�r�)rr��read_methodr�s&&& r!r��_ProxyFile._read	sA���<��D��
�
����	�	�"��T�"���J�J�O�O�%��	��
r$c��V#)z$Context management protocol support.rcras&r!�	__enter__�_ProxyFile.__enter__s���r$c�&�VP4R#r6)r�)r�excs&*r!�__exit__�_ProxyFile.__exit__s���
�
�r$c�6�VPP4#r6)r��readableras&r!r��_ProxyFile.readable����z�z�"�"�$�$r$c�6�VPP4#r6)r��writableras&r!r��_ProxyFile.writabler�r$c�6�VPP4#r6)r��seekableras&r!r��_ProxyFile.seekabler�r$c�6�VPP4#r6)r�r�ras&r!r��_ProxyFile.flush"s���z�z���!�!r$c��\VR4'gR#\VPR4'gR#VPP#)r�TrDF)r�r�rDras&r!rD�_ProxyFile.closed%s6���t�W�%�%���t�z�z�8�,�,���z�z� � � r$)r�r�r6��)r�r�r�r�r�r"r�r�r�r�ror�r�r�r�r�r�r�r�r�r��propertyrDr�rr�r�r�r�s@r!r/r/�sy����(��1�2�5�	��
�&�����%�%�%�"��!��!�$�L�1�r$r/c�Ja�]tRtRtoRtR
RltRtRRltRtRt	R	t
VtR#)ri0z&A read-only wrapper of part of a file.Nc�J�\PWV4W nW0nR#)zInitialize a _PartialFile.N)r/r"�_start�_stop)rr'r�r�s&&&&r!r"�_PartialFile.__init__3s�����D�U�+����
r$c�N�\PV4VP,
#)z*Return the position with respect to start.)r/r�r�ras&r!r��_PartialFile.tell9s�����t�$�t�{�{�2�2r$c��V^8XdVPVn^pMV^8XdVPVn^p\P	WV4R#)z8Change position, possibly with respect to start or stop.N)r�r�r�r/r�r�s&&&r!r��_PartialFile.seek=s>���Q�;����D�I��F�
�q�[��
�
�D�I��F�����f�-r$c��VPVP,
pV^8:dR#VeV^8gW8�dTp\PWV4#)z;Read size bytes using read_method, honoring start and stop.r$)r�r�r/r�)rr�r��	remainings&&& r!r��_PartialFile._readGsF���J�J����*�	���>���<�4�!�8�t�'7��D�����K�8�8r$c�2�\VR4'dV=R#R#)r�N)r�r�ras&r!r��_PartialFile.closePs���4��!�!��
�"r$)r�r�r�)NNr�)r�r�r�r�r�r"r�r�r�r�r�r�r�s@r!rr0s&����0��3�.�9��r$rc��Rp\'d<\P!V\P\P,4V'd�\VPR,4pVP4\P!TPTPR,4Rp\P!TP4R#R# \dapTP
\
P\
P\
P39d\RTP,4hhRp?ii;i \d<pTP
\
P\
P39dRp?R#hRp?ii;i \ \"3d9\P$!TPTPR,4RpR#i;i \&d>\P(!TP4\RTP,4hi;i \'d&\P!T\P*4T'd(\P(!TPR,4h;i)z(Lock file f using lockf and dot locking.Fzlockf: lock unavailable: %sN�.lockTzdot lock unavailable: %s)�fcntl�lockf�LOCK_EX�LOCK_NBrr�EAGAINr�r�rr�r�r�rrr�rrrr�r3�LOCK_UN)r'r��dotlock_doner�pre_locks&&   r!r�r�Ws����L�%��5�
����A�u�}�}�u�}�}�<�=��
�,�Q�V�V�g�-=�>����� �
1�-��G�G�H�M�M�1�6�6�G�+;�<�#'�L�
�I�I�h�m�m�,�#��
�
��7�7�u�|�|�U�\�\�5�;�;�G�G�,�-J�-.�V�V�.4�5�5���
���
��7�7�u�|�|�U�[�[�9�9����	
��'��8�(��I�I�h�m�m�Q�V�V�g�-=�>�#'�L�(��
#�
1��	�	�(�-�-�(�(�)C�)*���*0�1�1�
1����5��K�K��5�=�=�)���I�I�a�f�f�w�&�'�
�s��H(�:C�H(�,E�4F�6 G�E�%AE�E�H(�F�/F	�H(�F	�	F�H(�AG�G�G�G�AH%�%H(�(:J�#(Jc�&�\'d&\P!V\P4\PPVPR,4'd*\P!VPR,4R#R#)z*Unlock file f using lockf and dot locking.r�N)r�r�r�rrr�r�r3�r's&r!r�r��sO���u�
���A�u�}�}�%�	�w�w�~�~�a�f�f�w�&�'�'�
�	�	�!�&�&�7�"�#�(r$c��\VR4#)zCCreate a file if it doesn't exist and open for reading and writing.zxb+)r!�rs&r!r�r��s����e��r$c
��\V:R\\P!44:R\P!4:R\
P!4:24#)zBCreate a temp file based on path and open for reading and writing.ro)r�r�r�r�r�rr�r�s&r!r�r��s8���d�C��	�	��4D�.4�.@�.@�.B�.0�i�i�k�;�<�<r$c��VP4\\R4'd'\P!VP	44R#R#)z0Ensure changes to file f are physically on disk.�fsyncN)r�r�rr��filenor�s&r!r�r��s/���G�G�I��r�7���
��������r$c�<�\V4VP4R#)z:Close file f, ensuring all changes are physically on disk.N)r�r�r�s&r!r�r��s����N��G�G�Ir$c��]tRtRtRtRtR#)ri�z"Raised for module-specific errors.rcNrJrcr$r!rr�s��,r$c��]tRtRtRtRtR#)ri�z:The specified mailbox does not exist and won't be created.rcNrJrcr$r!rr�s��Dr$c��]tRtRtRtRtR#)ri�z>The specified mailbox is not empty and deletion was requested.rcNrJrcr$r!rr�s��Hr$c��]tRtRtRtRtR#)ri�z)Another process caused an action to fail.rcNrJrcr$r!rr����3r$c��]tRtRtRtRtR#)ri�z)A file appears to have an invalid format.rcNrJrcr$r!rr�r�r$)rrrrrrr	r
rrr
rrrrrr)T)2r�rr�rCr�rr�r�rT�
email.message�email.generatorr�rJ�typesrr��ImportError�__all__r�r�rrr�rrrrrr+r	r
rrrr
rr/rr�r�r�r�r�r��	Exceptionrrrrrrcr$r!�<module>r�s���J�
���
�������	�����A��

�*�*�
�
�G�
$��f2�f2�Rg�g�g�TC��C�N@�"�@�F1.�9�1.�h*.�9�*.�Z@*��@*�F
v��v�r"@�e�m�m�#�#�"@�Jj+�W�j+�Zn+�w�n+�b1�"�1�E+��E+�P\+�7�\+�~1�"�1�_2�_2�D$�:�$�N(�T$��<���-�I�-�E��E�I�E�I�4��4�4�%�4��eD���E��s�E7�7	F�F

Youez - 2016 - github.com/yon3zu
LinuXploit