Edit File: imaplib.cpython-38.opt-2.pyc
U ����@��df��������������������*���@���s���d�Z�ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z mZmZ�ddl mZ�zddlZdZW�n�ek r����dZY�nX�ddd d ddgZd ZdZdZdZdZdZdddddddddddddddddddddddddddddddddddddddddd�)Ze�d�Ze�d�Ze�d�Ze�dej�Ze�d�Z e�d�Z!e�d�Z"e�dej�Z#dZ$dZ%G�d d��d�Z&e�r�G�d!d"��d"e&�Z'e�(d"��G�d#d��de&�Z)G�d$d%��d%�Z*d&�+d'�Z,d(d)��e-e,d*d���D��Z.d+d ��Z/d,d ��Z0d-d��Z1d.d��Z2e3d/k�r�ddl4Z4ddl5Z5ze4�4ej6d*d��d0�\Z7Z8W�n.�e4j9k �rl�Z:�zd1\Z7Z8W�5�dZ:[:X�Y�nX�dZ;e7D�]8\Z<Z:e<d2k�r�e=e:�Zne<d3k�rve:Z;e8�sve;fZ8�qve8�s�d4Z8e8d�Z>e5�?��Z@e5�5d5e@e>�p�d6f��ZAd7e@d8d9��ZBd:e@eAffd;d<d=d>d?ddeBffd@dAdBdCdDdEdFdGdHfZCdIdJdKdLd>dddeBffdGdMfZDdNdO��ZE�ze;�r^e)e;�ZFne&e>�ZFeFjGdPk�r~eCd*d��ZCeF�HdQeFjI���eF�HdReFjJf���eCD�]\ZKZ8eEeKe8���q�eEdSdT�D�]<ZLe�MdUeL�ZNeN�r�eN�Od*�ZPneL�+��dV�ZPeEdWePf���q�eDD�]T\ZKZ8eEeKe8�ZQeKe8fdKk�r*�qeQdV��+��ZReR�s@�qeEdXdYdZeRdV��d[f���qeSd\��W�n.���eSd]��e�s�eSd^ej6d������Y�nX�dS�)_z2.58�����N)�datetime�timezone� timedelta)�DEFAULT_BUFFER_SIZETF�IMAP4�IMAP4_stream�Internaldate2tuple�Int2AP� ParseFlags�Time2Internaldate���� ����i���)Z IMAP4REV1r���i@B�)�AUTH�SELECTED)�NONAUTH)r���r���r����LOGOUT)r���)r���))�APPEND�AUTHENTICATE� CAPABILITY�CHECK�CLOSE�COPY�CREATE�DELETE� DELETEACL�ENABLE�EXAMINE�EXPUNGE�FETCH�GETACL� GETANNOTATION�GETQUOTA�GETQUOTAROOT�MYRIGHTS�LIST�LOGINr����LSUBZMOVE� NAMESPACE�NOOP�PARTIAL� PROXYAUTH�RENAME�SEARCH�SELECT�SETACL� SETANNOTATION�SETQUOTA�SORT�STARTTLS�STATUS�STORE� SUBSCRIBE�THREAD�UID�UNSUBSCRIBEs���\+( (?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>.*))?c�������������������@���s���e�Zd�ZG�dd��de�ZG�dd��de�ZG�dd��de�Zdefdd �Zd d��Z dd ��Z dd��Zdd��Zdd��Z dd��Zdd��Zdefdd�Zdd��Zdd��Zdd��Zd d!��Zd"d#��Zd$d%��Zd&d'��Zd(d)��Zd*d+��Zd,d-��Zd.d/��Zd0d1��Zd2d3��Zd4d5��Zd6d7��Zd8d9��Z d:d;��Z!d<d=��Z"d>d?��Z#d@dA��Z$dBdC��Z%dDdE��Z&dFdG��Z'd�dJdK�Z(dLdM��Z)dNdO��Z*dPdQ��Z+dRdS��Z,d�dTdU�Z-dVdW��Z.dXdY��Z/dZd[��Z0d\d]��Z1d^d_��Z2d`da��Z3dbdc��Z4d�dfdg�Z5dhdi��Z6djdk��Z7dldm��Z8dndo��Z9d�dqdr�Z:dsdt��Z;dudv��Z<dwdx��Z=dydz��Z>d{d|��Z?d}d~��Z@dd���ZAd�d���ZBd�d���ZCd�d���ZDd�d���ZEd�d���ZFd�d���ZGd�d�d��ZHd�d���ZId�d���ZJd�d���ZKd�d���ZLd�d���ZMd�d���ZNdpS�)�r���c�������������������@���s���e�Zd�ZdS�)zIMAP4.errorN��__name__� __module__�__qualname__��r=���r=����,/opt/alt/python38/lib64/python3.8/imaplib.py�error����s����r?���c�������������������@���s���e�Zd�ZdS�)zIMAP4.abortNr9���r=���r=���r=���r>����abort����s����r@���c�������������������@���s���e�Zd�ZdS�)zIMAP4.readonlyNr9���r=���r=���r=���r>����readonly����s����rA�����c�����������������C���s����t�|�_d|�_d�|�_i�|�_i�|�_d|�_d|�_d|�_d|�_ |�� ���|��||��z|�����W�n8�t k r����z|�����W�n�tk r����Y�nX���Y�nX�d�S�)Nr���rB���Fr���)�Debug�debug�state�literal�tagged_commands�untagged_responses�continuation_response�is_readonly�tagnum�_tls_established�_mode_ascii�open�_connect� Exception�shutdown�OSError��self�host�portr=���r=���r>����__init__����s&����zIMAP4.__init__c�����������������C���s0���d|�_�d|�_t�ttj�|�_t�ttj�|�_d�S�)NF�ascii) �utf8_enabled� _encoding�re�compile�_Literal�ASCII�Literal�_Untagged_status�Untagged_status�rT���r=���r=���r>���rM�������s����zIMAP4._mode_asciic�����������������C���s(���d|�_�d|�_t�t�|�_t�t�|�_d�S�)NT�utf-8)rY���rZ���r[���r\���r]���r_���r`���ra���rb���r=���r=���r>���� _mode_utf8����s����zIMAP4._mode_utf8c�����������������C���s����t�t�dd��|�_t�d|�j�d�tj�|�_|�� ��|�_ d|�jkrHd|�_nd|�jkrZd|�_n|�� |�j ��|�����tD�]}||�jkr�qr||�_�d�S�|�� d ��d�S�) Ni���i����s���(?P<tag>s"���\d+) (?P<type>[A-Z]+) (?P<data>.*)ZPREAUTHr����OKr���zserver not IMAP4 compliant)r ����randomZrandint�tagprer[���r\���r^����tagre�__version__� _get_responseZwelcomerH���rE���r?����_get_capabilities�AllowedVersions�capabilities�PROTOCOL_VERSION)rT����versionr=���r=���r>���rO�������s*������� zIMAP4._connectc�����������������C���s&���|t�krt|�|����S�td|���d�S�)NzUnknown IMAP4 command: '%s')�Commands�getattr�lower�AttributeError)rT����attrr=���r=���r>����__getattr__ ��s����zIMAP4.__getattr__c�����������������C���s���|�S��Nr=���rb���r=���r=���r>���� __enter__��s����zIMAP4.__enter__c�����������������G���s4���|�j�dkrd�S�z|�����W�n�tk r.���Y�nX�d�S��Nr���)rE����logoutrR���)rT����argsr=���r=���r>����__exit__��s���� zIMAP4.__exit__c�����������������C���s4���|�j�s d�n|�j�}t�d|�|�j�|�j��t�||�jf�S�)Nzimaplib.open)rU����sys�auditrV����socketZcreate_connection)rT���rU���r=���r=���r>����_create_socket��s����zIMAP4._create_socketc�����������������C���s(���||�_�||�_|����|�_|�j�d�|�_d�S�)N�rb)rU���rV���r����sock�makefile�filerS���r=���r=���r>���rN���'��s���� z IMAP4.openc�����������������C���s���|�j��|�S�rv���)r�����read�rT����sizer=���r=���r>���r����3��s����z IMAP4.readc�����������������C���s.���|�j��td��}t|�tkr*|��dt���|S�)N����zgot more than %d bytes)r�����readline�_MAXLINE�lenr?����rT����liner=���r=���r>���r����8��s����zIMAP4.readlinec�����������������C���s���t��d|�|��|�j�|��d�S�)Nzimaplib.send)r|���r}���r����Zsendall�rT����datar=���r=���r>����send@��s����z IMAP4.sendc�������������� ���C���st���|�j�����zXz|�j�tj��W�n@�tk r^�}�z"|jtjkrNt |dd�dkrN��W�5�d�}~X�Y�nX�W�5�|�j����X�d�S�)NZwinerrorr���i&'��) r�����closer����rQ���r~���Z SHUT_RDWRrR����errnoZENOTCONNrq���)rT����excr=���r=���r>���rQ���F��s���� �zIMAP4.shutdownc�����������������C���s���|�j�S�rv���)r����rb���r=���r=���r>���r~���V��s����zIMAP4.socketc�����������������C���sB���d}|���dd�g|�\}}|d�r(||fS�|����\}}|���|||�S�)NZRECENTre������)�_untagged_response�noop�rT����name�typ�datr=���r=���r>����recentb��s���� zIMAP4.recentc�����������������C���s���|���|d�g|����S�rv���)r�����upper)rT����coder=���r=���r>����responses��s����zIMAP4.responsec�����������������C���sx���d}|sd}|r.|d�|d�fdkr2d|�}nd�}|r@t�|�}nd�}t�t|�}|�jrbd|�d�}||�_|��||||�S�) Nr����INBOXr���r������(�)�(%s)s���UTF8 (����))r����MapCRLF�sub�CRLFrY���rF����_simple_command)rT����mailbox�flags� date_time�messager����rF���r=���r=���r>����append���s���� zIMAP4.appendc�����������������C���sP���|����}t|�j|�_|��d|�\}}|dkrB|��|d��dd���d|�_||fS�)Nr���re���r����rc����replacer���)r�����_Authenticator�processrF���r����r?����decoderE���)rT���Z mechanismZ authobject�mechr����r����r=���r=���r>����authenticate���s����zIMAP4.authenticatec�����������������C���s ���d}|���|�\}}|��|||�S�)Nr����r����r����r����r=���r=���r>���� capability���s����zIMAP4.capabilityc�����������������C���s ���|���d�S�)Nr����r����rb���r=���r=���r>����check���s����zIMAP4.checkc�����������������C���s$���z|��d�\}}W�5�d|�_�X�||fS�)Nr���r���)rE���r�����rT���r����r����r=���r=���r>���r�������s����zIMAP4.closec�����������������C���s���|���d||�S�)Nr���r����)rT����message_setZnew_mailboxr=���r=���r>����copy���s����z IMAP4.copyc�����������������C���s���|���d|�S�)Nr���r�����rT���r����r=���r=���r>����create���s����zIMAP4.createc�����������������C���s���|���d|�S�)Nr���r����r����r=���r=���r>����delete���s����zIMAP4.deletec�����������������C���s���|���d||�S�)Nr���r����)rT���r�����whor=���r=���r>���� deleteacl���s����zIMAP4.deleteaclc�����������������C���sH���d|�j�krt�d��|��d|�\}}|dkr@d|���kr@|�����||fS�)Nr���zServer does not support ENABLEre���zUTF8=ACCEPT)rm���r���r?���r����r����rd���)rT���r����r����r����r=���r=���r>����enable���s���� zIMAP4.enablec�����������������C���s ���d}|���|�\}}|��|||�S�)Nr���r����r����r=���r=���r>����expunge��s���� z IMAP4.expungec�����������������C���s$���d}|���|||�\}}|��|||�S�)Nr���r����)rT���r����Z message_partsr����r����r����r=���r=���r>����fetch��s���� zIMAP4.fetchc�����������������C���s���|���d|�\}}|��||d�S�)Nr���ZACLr�����rT���r����r����r����r=���r=���r>����getacl��s����zIMAP4.getaclc�����������������C���s"���|���d|||�\}}|��||d�S�)Nr ���� ANNOTATIONr����)rT���r�����entryZ attributer����r����r=���r=���r>���� getannotation(��s����zIMAP4.getannotationc�����������������C���s���|���d|�\}}|��||d�S�)Nr!����QUOTAr����)rT����rootr����r����r=���r=���r>����getquota0��s����zIMAP4.getquotac�����������������C���s@���|���d|�\}}|��||d�\}}|��||d�\}}|||gfS�)Nr"���r����Z QUOTAROOTr����)rT���r����r����r����ZquotaZ quotarootr=���r=���r>����getquotaroot;��s����zIMAP4.getquotaroot�""�*c�����������������C���s$���d}|���|||�\}}|��|||�S�)Nr$���r�����rT���Z directory�patternr����r����r����r=���r=���r>����listF��s����z IMAP4.listc�����������������C���s<���|���d||��|��\}}|dkr.|��|d���d|�_||fS�)Nr%���re���r����r���)r�����_quoter?���rE���)rT����user�passwordr����r����r=���r=���r>����loginR��s ����zIMAP4.loginc�����������������C���s���||�|�_�|�_|��d|�j�S�)NzCRAM-MD5)r����r����r�����_CRAM_MD5_AUTH)rT���r����r����r=���r=���r>����login_cram_md5`��s����zIMAP4.login_cram_md5c�����������������C���sB���dd�l�}t|�jt�r |�j�d�n|�j}|�jd�|�||d�����S�)Nr���rc���� Zmd5)�hmac� isinstancer�����str�encoder����ZHMACZ hexdigest)rT���Z challenger�����pwdr=���r=���r>���r����i��s �����zIMAP4._CRAM_MD5_AUTHc�����������������C���s$���d|�_�|��d�\}}|�����||fS�rx���)rE���r����rQ���r����r=���r=���r>���ry���q��s����zIMAP4.logoutc�����������������C���s$���d}|���|||�\}}|��|||�S�)Nr&���r����r����r=���r=���r>����lsub~��s����z IMAP4.lsubc�����������������C���s���|���d|�\}}|��||d�S�)Nr#���r����r����r=���r=���r>����myrights���s����zIMAP4.myrightsc�����������������C���s ���d}|���|�\}}|��|||�S�)Nr'���r����r����r=���r=���r>���� namespace���s����zIMAP4.namespacec�����������������C���s ���|���d�S�)Nr(���r����rb���r=���r=���r>���r�������s����z IMAP4.noopc�����������������C���s(���d}|���|||||�\}}|��||d�S�)Nr)���r���r����)rT���Zmessage_numZmessage_part�startZlengthr����r����r����r=���r=���r>����partial���s����z IMAP4.partialc�����������������C���s���d}|���d|�S�)Nr*���r����)rT���r����r����r=���r=���r>���� proxyauth���s���� zIMAP4.proxyauthc�����������������C���s���|���d||�S�)Nr+���r����)rT���Z oldmailboxZ newmailboxr=���r=���r>����rename���s����zIMAP4.renamec�����������������G���sT���d}|r2|�j�rt�d��|�j|d|f|���\}}n|�j|f|���\}}|��|||�S�)Nr,���z'Non-None charset not valid in UTF8 mode�CHARSET)rY���r���r?���r����r����)rT����charsetZcriteriar����r����r����r=���r=���r>����search���s���� zIMAP4.searchr����Fc�����������������C���sv���i�|�_�||�_|rd}nd}|��||�\}}|dkr@d|�_||fS�d|�_d|�j�krb|sb|��d|���||�j��dd�g�fS�) Nr���r-���re���r���r���� READ-ONLYz%s is not writable�EXISTS)rH���rJ���r����rE���rA����get)rT���r����rA���r����r����r����r=���r=���r>����select���s���� �zIMAP4.selectc�����������������C���s���|���d|||�S�)Nr.���r����)rT���r����r����Zwhatr=���r=���r>����setacl���s����zIMAP4.setaclc�����������������G���s ���|�j�d|���\}}|��||d�S�)Nr/���r����)r/���r����)rT���rz���r����r����r=���r=���r>���� setannotation��s����zIMAP4.setannotationc�����������������C���s ���|���d||�\}}|��||d�S�)Nr0���r����r����)rT���r����Zlimitsr����r����r=���r=���r>����setquota ��s����zIMAP4.setquotac�����������������G���sF���d}|d�|d�fdkr d|�}|�j�|||f|���\}}|��|||�S�)Nr1���r���r����r����r����r����)rT���Z sort_criteriar�����search_criteriar����r����r����r=���r=���r>����sort��s ����z IMAP4.sortNc�����������������C���s����d}t�s|��d��|�jr"|��d��||�jkr6|��d��|d�krFt���}|��|�\}}|dkr�|j|�j |�j d�|�_ |�j �d�|�_d|�_|�� ���n |��d ��|��|||�S�) Nr2���zSSL support missingzTLS session already establishedzTLS not supported by serverre����Zserver_hostnamer����TzCouldn't establish TLS session)�HAVE_SSLr?���rL���r@���rm����ssl�_create_stdlib_contextr�����wrap_socketr����rU���r����r����rk���r����)rT����ssl_contextr����r����r����r=���r=���r>����starttls ��s&���� � zIMAP4.starttlsc�����������������C���s$���d}|���|||�\}}|��|||�S�)Nr3���r����)rT���r�����namesr����r����r����r=���r=���r>����status7��s����zIMAP4.statusc�����������������C���s>���|d�|d�fdkrd|�}|���d|||�\}}|��||d�S�)Nr���r����r����r����r4���r���r����)rT���r�����commandr����r����r����r=���r=���r>����storeC��s����zIMAP4.storec�����������������C���s���|���d|�S�)Nr5���r����r����r=���r=���r>���� subscribeN��s����zIMAP4.subscribec�����������������G���s*���d}|�j�|||f|���\}}|��|||�S�)Nr6���r����)rT���Zthreading_algorithmr����r����r����r����r����r=���r=���r>����threadV��s����zIMAP4.threadc�������������� ���G���s����|����}|tkr|��d|���|�jt|�krL|��d||�jd�t|��f���d}|�j||f|���\}}|dkrt|}nd}|��|||�S�)NzUnknown IMAP4 UID command: %s�9command %s illegal in state %s, only allowed in states %s�, r7���)r,���r1���r6���r���)r����rp���r?���rE����joinr����r����)rT���r����rz���r����r����r����r=���r=���r>����uid`��s������z IMAP4.uidc�����������������C���s���|���d|�S�)Nr8���r����r����r=���r=���r>����unsubscribey��s����zIMAP4.unsubscribec�����������������G���s,���|����}|tkr|�jft|<�|�j|f|���S�rv���)r����rp���rE���r�����rT���r����rz���r=���r=���r>����xatom���s���� zIMAP4.xatomc�����������������C���s8���|d�krd}|�j�}||kr*||��|��n |g||<�d�S��N�����)rH���r����r����)rT���r����r����Zurr=���r=���r>����_append_untagged���s����zIMAP4._append_untaggedc�����������������C���s,���|�j��d�}|r(|��|d��|�jd���d�S�)N�BYEr����r����)rH���r����r@���r����rZ���)rT����byer=���r=���r>���� _check_bye���s����zIMAP4._check_byec����������� ��� ���G���s���|�j�t|�kr4d�|�_|��d||�j�d�t|��f���dD�]}||�jkr8|�j|=�q8d|�jkrj|�jsj|��d��|����}t ||�j �}|d�|�}|D�]0}|d�kr�q�t|t�r�t ||�j �}|d�|�}q�|�j}|d�k �r d�|�_t |�t |�j�kr�|}nd�}|t dt|��|�j ��}z|��|t���W�n2�tk �rN�} �z|��d| ���W�5�d�} ~ X�Y�nX�|d�k�r^|S�|�����r||�j|��r^|S��q^|�r�||�j�}z|��|��|��t��W�n2�tk �r��} �z|��d| ���W�5�d�} ~ X�Y�nX�|�s^�q�q^|S�) Nr����r�����re����NO�BADr����z#mailbox status changed to READ-ONLY���� z {%s}zsocket error: %s)rE���rp���rF���r?���r����rH���rJ���rA����_new_tag�bytesrZ���r����r�����type�_commandr����r����r����rR���r@���rj���rG���rI���) rT���r����rz���r�����tagr�����argrF���Z literator�valr=���r=���r>���r�����sb������ � � zIMAP4._commandc�������������� ���C���s����|dk}|s|������z|�j||d�\}}W�nj�|�jk r`�}�z|��d||f���W�5�d�}~X�Y�n6�|�jk r��}�z|��d||f���W�5�d�}~X�Y�nX�|s�|������|dkr�|��d|||f���||fS�)Nr���)� expect_byezcommand: %s => %sr��z%s command error: %s %s)r���_get_tagged_responser@���r?���)rT���r����r��ry���r����r����r��r=���r=���r>����_command_complete���s����"$zIMAP4._command_completec�����������������C���sJ���|�����\}}|d�gkr |��d��t|d�|�j�}|���}t|����|�_d�S�)Nz"no CAPABILITY response from serverr����)r����r?���r����rZ���r�����tuple�splitrm���r����r=���r=���r>���rk��� ��s���� zIMAP4._get_capabilitiesc�����������������C���s���|�����}|��|�j|�rp|�j�d�}||�jkr:|��d|���|�j�d�}t||�j�}|�j�d�}||gf|�j|<�n�d�}|��t |�s�|��|�j |�r�|�j�d�}|�jd�kr�|��t|�r�|�j�d�|�_d�S�|��d|���|�j�d�}t||�j�}|�j�d�}|d�k�rd}|�r|d�|�}|��|�j |��rZt|�j�d ��}|��|�}|��|||f��|�����}�q|��||��|d k�r�|��t|��r�|�j�d�}t||�j�}|��||�j�d���|S�)Nr��zunexpected tagged response: %rr��r����Zdata2zunexpected response: %rr��r��r����r ��)� _get_line�_matchrh����mo�grouprG���r@���r����rZ����Untagged_responsera����ContinuationrI���r_����intr����r��� Response_code)rT����respr��r����r����Zdat2r����r����r=���r=���r>���rj�����sH���� �� zIMAP4._get_responsec�������������� ���C���s����|�j�|�}|d�k r|�j�|=�|S�|rDd}|�j�|d��}|d�k rD||fS�|�����z|�����W�q��|�jk r~�}�z��W�5�d�}~X�Y�q�X�q�d�S�)Nr��)rG���rH����popr��rj���r@���)rT���r��r���resultr����r��r��r=���r=���r>���r��c��s���� zIMAP4._get_tagged_responsec�����������������C���s>���|�����}|s|��d��|�d�s.|��d|���|d�d��}|S�)Nzsocket error: EOFr���z#socket error: unterminated line: %r���)r����r@����endswithr����r=���r=���r>���r�����s���� zIMAP4._get_linec�����������������C���s���|��|�|�_|�jd�k S�rv���)�matchr��)rT���Zcre�sr=���r=���r>���r�����s����zIMAP4._matchc�����������������C���s2���|�j�tt|�j�|�j��}|�jd�|�_d�|�j|<�|S�)Nr����)rg���r��r����rK���rZ���rG���)rT���r��r=���r=���r>���r �����s���� zIMAP4._new_tagc�����������������C���s$���|��dd�}|��dd�}d|�d�S�)N�\z\\�"z\")r����)rT���r��r=���r=���r>���r�������s����zIMAP4._quotec�����������������G���s���|���||�j|f|����S�rv���)r��r��r��r=���r=���r>���r�������s����zIMAP4._simple_commandc�����������������C���s8���|dkr||fS�||�j�kr$|d�gfS�|�j��|�}||fS�)Nr ��)rH���r"��)rT���r����r����r����r����r=���r=���r>���r�������s���� zIMAP4._untagged_response)r����r����)r����r����)r����F)N)F)Sr:���r;���r<���rP���r?���r@���rA���� IMAP4_PORTrW���rM���rd���rO���ru���rw���r{���r���rN���r����r����r����rQ���r~���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����ry���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��rk���rj���r��r��r��r ��r����r����r�����_mesgZ_dump_urZ_logZ print_logr=���r=���r=���r>���r�������s����.* M P !$c�������������������@���s6���e�Zd�Zdedddfdd�Zdd��Zdefdd�ZdS�) � IMAP4_SSLrB���Nc�����������������C���s����|d�k r|d�k rt�d��|d�k r0|d�k r0t�d��|d�k s@|d�k rVdd�l}|�dtd��||�_||�_|d�krxtj||d�}||�_t � |�||��d�S�)Nz8ssl_context and keyfile arguments are mutually exclusivez9ssl_context and certfile arguments are mutually exclusiver���zEkeyfile and certfile are deprecated, use a custom ssl_context instead����)�certfile�keyfile)� ValueError�warnings�warn�DeprecationWarningr/��r.��r����r����r����r���rW���)rT���rU���rV���r/��r.��r����r1��r=���r=���r>���rW������s$�������zIMAP4_SSL.__init__c�����������������C���s���t��|��}|�jj||�jd�S�)Nr����)r���r���r����r����rU���)rT���r����r=���r=���r>���r�����s���� �zIMAP4_SSL._create_socketc�����������������C���s���t��|�||��d�S�rv���)r���rN���rS���r=���r=���r>���rN�����s����zIMAP4_SSL.open)r:���r;���r<����IMAP4_SSL_PORTrW���r���rN���r=���r=���r=���r>���r,�����s����� r,��c�������������������@���s>���e�Zd�Zdd��Zddd�Zdd��Zdd ��Zd d��Zdd ��ZdS�)r���c�����������������C���s���||�_�t�|���d�S�rv���)r����r���rW���)rT���r����r=���r=���r>���rW���/��s����zIMAP4_stream.__init__Nc�����������������C���sN���d�|�_�d�|�_d�|�_d�|�_tj|�jttjtjddd�|�_ |�j j |�_|�j j|�_ d�S�)NT)�bufsize�stdin�stdout�shellZ close_fds)rU���rV���r����r����� subprocess�Popenr����r����PIPEr����r6��� writefiler7���readfilerS���r=���r=���r>���rN���4��s������� zIMAP4_stream.openc�����������������C���s���|�j��|�S�rv���)r=��r����r����r=���r=���r>���r����D��s����zIMAP4_stream.readc�����������������C���s ���|�j����S�rv���)r=��r����rb���r=���r=���r>���r����I��s����zIMAP4_stream.readlinec�����������������C���s���|�j��|��|�j�����d�S�rv���)r<���write�flushr����r=���r=���r>���r����N��s����zIMAP4_stream.sendc�����������������C���s"���|�j�����|�j����|�j����d�S�rv���)r=��r����r<��r�����waitrb���r=���r=���r>���rQ���T��s���� zIMAP4_stream.shutdown)NN) r:���r;���r<���rW���rN���r����r����r����rQ���r=���r=���r=���r>���r���#��s��� c�������������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) r����c�����������������C���s ���||�_�d�S�rv���)r����)rT���Zmechinstr=���r=���r>���rW���b��s����z_Authenticator.__init__c�����������������C���s&���|���|��|��}|d�krdS�|��|�S�)N����*)r����r����r����)rT���r����Zretr=���r=���r>���r����e��s����z_Authenticator.processc�����������������C���sn���d}t�|t�r|�d�}|rjt|�dkrB|d�d��}|dd���}n|}d}t�|�}|r||d�d���}q|S�)Nr��rc����0���r����)r����r����r����r�����binasciiZ b2a_base64)rT����inpZoup�t�er=���r=���r>���r����k��s���� z_Authenticator.encodec�����������������C���s���|sdS�t��|�S�r��)rC��Z a2b_base64)rT���rD��r=���r=���r>���r�������s����z_Authenticator.decodeN)r:���r;���r<���rW���r����r����r����r=���r=���r=���r>���r����\��s���r����z0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Decr����c�����������������C���s���i�|�]\}}|����|d���qS�)r����)r����)�.0�nr'��r=���r=���r>���� <dictcomp>���s������rI��r����c�������������� ���C���s����t��|��}|sd�S�t|�d��}|�d�}t|�d��}t|�d��}t|�d��}t|�d��}t|�d��}t|�d��} t|�d ��} | d �| �d �}|dkr�|�}||||||dddf }t�|�|�} t�| �S�) N�mon�zonen�day�year�hour�min�sec�zoneh�zonem�<�������-r����) �InternalDater&���Mon2numr��r���calendarZtimegm�time� localtime)r!��r��rJ��rK��rL��rM��rN��rO��rP��rQ��rR��ZzoneZtt�utcr=���r=���r>���r������s$���� c�����������������C���s@���d}d}t�t|���}�|�r<t|�d�\}�}|||d���|�}q|S�)Nr��s���ABCDEFGHIJKLMNOP����r����)r���abs�divmod)Znumr��ZAP�modr=���r=���r>���r ������s�����c�����������������C���s$���t��|��}|sdS�t|�d�����S�)Nr=���r����)�Flagsr&��r��r��r��)r!��r��r=���r=���r>���r ������s���� c�����������������C���s��t�|�ttf�r"t�|�tj����}n�t�|�t�r�z |�j }W�nZ�t k r����tjr�|�d�}|dkrpt� t�|���d�}tjtjf|��}ntj�}Y�nX�t|d�}t|�d�d��dt|�i�}nLt�|�t�r�|�jd�kr�td��|�}n*t�|�t�r�|�d�|�d�fdkr�|�S�td ��d �t|j��}|�|�S�)N����r����)Zseconds�����tzinfozdate_time must be awarer���)r)��r)��zdate_time not of a known typez"%d-{}-%Y %H:%M:%S %z")r����r���floatr���Z fromtimestampr���rZ��Z astimezoner��� tm_gmtoffrs���rX���daylightrY���mktime�altzoner���rb��r0��r�����format�MonthsZmonth�strftime)r����ZdtZgmtoffZdstZdeltaZfmtr=���r=���r>���r������s2����� �__main__zd:s:)r=���r=���z-dz-s)rB���zIMAP password for %s on %s: Z localhostzJFrom: %(user)s@localhost%(lf)sSubject: IMAP4 test%(lf)s%(lf)sdata...%(lf)s� )r����Zlfr����)r����)� /tmp/xxx 1)r����)rm��z/tmp/yyy)r����� /tmp/yyz 2r����ro��)r����)z/tmpzyy*)r����rn��)r����)NZSUBJECTZtest)r����)�1z(FLAGS INTERNALDATE RFC822))r����)rp���FLAGSz (\Deleted))r����r=���)r����r=���)r����r=���)r����r=���)r����r=���)r����)ZUIDVALIDITY)r����)r,���ZALL)r����)r����)ry���r=���c�����������������C���sL���t��d|�|f���tt�|��|��\}}t��d|�||f���|dkrH|d��|S�)Nz%s %sz%s => %s %sr ��r���)�Mr+��rq���)�cmdrz���r����r����r=���r=���r>����run'��s�����rt��r���zPROTOCOL_VERSION = %szCAPABILITIES = %rr����)z/tmp/zyy%z.*"([^"]+)"$r����r����r����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 )Tri���rC��r����rf���r[���r~���r9��r|���rX��rW��r���r���r����ior���r����r�����ImportError�__all__r����rC���r*��r4��rl���r����rp���r\���r��r_��rU��r^���r_���r����r ��r��ra���r]���r`���r���r,��r����r���r����r��ri��� enumeraterV��r���r ���r ���r���r:���ZgetoptZgetpass�argvZoptlistrz���r?���r��Zstream_command�optr��rU���ZgetuserZUSERZPASSWDZ test_mesgZ test_seq1Z test_seq2rt��rr��rE���r+��rn���rm���rs��Zmlr&��r��r���pathr����r�����printr=���r=���r=���r>����<module>���sX��H ��� �/ ����������l4 9, # ) � � �� � �� �