� ���j�9��� ddlZddlZddlZddlZ ddlZdZddgZGd�de�Z dZ dZ d Z d Z e e zZd ZGd �d�ZerGd �de�Zej%d�edk(r�ddlZeej(d�Zeej/��ej1ej(d�ej3ej(d�ej5�ej7�\ZZededz�D]<ZejAe�\Z!Z"Z#edez�e"D] Z$ede$z��ed��>ejK�yy#e$rdZY��@wxYw)�NTF�POP3� error_protoc� �eZdZy)rN)�__name__� __module__� __qualname__���/usr/lib64/python3.12/poplib.pyrrs�r �ni�� � ic���eZdZ dZeej fd�Zd�Zd�Z d�Z d�Z d�Z d�Z d �Zd �Zd �Zd �Zd �Zd�Zd�Zd d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zej<d�Zd�Z d�Z!d d�Z"d�Z#d�Z$d d�Z%y)!rzUTF-8c��||_||_d|_tjd|||�|j |�|_|j jd�|_d|_ |j�|_ y)NFzpoplib.connect�rbr) �host�port�_tls_established�sys�audit�_create_socket�sock�makefile�file� _debugging�_getresp�welcome)�selfrr�timeouts r �__init__z POP3.__init__bsg���� ��� � %��� � � �"�D�$��5��'�'��0�� ��I�I�&�&�t�,�� �����}�}��� r c�x�|� |s td��tj|j|jf|�S)Nz0Non-blocking socket (timeout=0) is not supported)� ValueError�socket�create_connectionrr)rrs r rzPOP3._create_socketms6�� � �w��O�P� P��'�'����D�I�I�(>��H�Hr c��|jdkDrtdt|��tjd||�|j j |tz�y)N�z*put*zpoplib.putline)r�print�reprrrr�sendall�CRLF�r�lines r �_putlinez POP3._putlinersB�� �?�?�Q� ��g�t�D�z� :� � � �"�D�$�/� � � ���$��+�&r c���|jrtdt|��t||j�}t j d|�r td��|j|�y)Nz*cmd*s[-]z*Control characters not allowed in commands) rr'r(�bytes�encoding�re�searchr"r-r+s r �_putcmdz POP3._putcmdzsM�� �?�?�E�'�4��:�6��T�4�=�=�)�� �9�9�'�� .��I�J� J� � � �d�r c�R�|jjtdz�}t|�tkDr t d��|j dkDrt dt|��|s t d��t|�}|ddtk(r|dd|fS|ddtk(r|dd|fS|dd|fS)Nr&z line too longz*get*z-ERR EOF����������) r�readline�_MAXLINE�lenrrr'r(r*�CR)rr,�octetss r �_getlinez POP3._getline�s����y�y�!�!�(�Q�,�/�� �t�9�x� ��o�.� .� �?�?�Q� ��g�t�D�z� :��;�z�2�2��T��� ���9�� ����9�f�$� $� ���8�r�>���"�:�v�%� %��C�R�y�&� � r c��|j�\}}|jdkDrtdt|��|j d�s t |��|S)Nr&z*resp*�+)r<rr'r(� startswithr)r�resp�os r rz POP3._getresp�sF���-�-�/���a� �?�?�Q� ��h��T� � ;����t�$��d�#� #�� r c���|j�}g}d}|j�\}}|dk7rJ|jd�r |dz }|dd}||z}|j|�|j�\}}|dk7r�J|||fS)Nr�.s..r&)rr<r?�append)rr@�listr;r,rAs r � _getlongrespzPOP3._getlongresp�s����}�}�����A�6��-�-�/���a��d�l����u�%��a�C���A�B�x���a�Z�F� �K�K�� ��m�m�o�G�D�!� �d�l��T�6�!�!r c�D�|j|�|j�S�N)r3rr+s r � _shortcmdzPOP3._shortcmd�s�� � � �T���}�}��r c�D�|j|�|j�SrH)r3rFr+s r �_longcmdz POP3._longcmd�s�� � � �T��� � �"�"r c��|jSrH)r�rs r � getwelcomezPOP3.getwelcome�s ���|�|�r c��||_yrH)r)r�levels r �set_debuglevelzPOP3.set_debuglevel�s ����r c�,� |jd|z�S)NzUSER %s�rI�r�users r rUz POP3.user�s�� ��~�~�i�$�.�/�/r c�,� |jd|z�S)NzPASS %srS)r�pswds r �pass_z POP3.pass_�s�� � �~�~�i�$�.�/�/r c�,� |jd�}|j�}|jrtdt |��t |�dkr t d�� t|d�}t|d�}||fS#t$r t d��wxYw)N�STATz*stat*�zInvalid STAT response formatr&�z.Invalid STAT response data: non-numeric values) rI�splitrr'r(r9r�intr")r�retval�rets� numMessages� sizeMessagess r �statz POP3.stat�s��� �����'���|�|�~�� �?�?�E�(�D��J�7� �t�9�q�=��<�=� =� P��d�1�g�,�K��t�A�w�<�L��\�*�*��� P��N�O� O� P�s �A>�>BNc�R� |�|jd|z�S|jd�S)NzLIST %s�LIST�rIrK�r�whichs r rEz POP3.list�s2�� � � ��>�>�)�e�"3�4� 4��}�}�V�$�$r c�,� |jd|z�S)NzRETR %s�rKrgs r �retrz POP3.retrs�� ��}�}�Y��.�/�/r c�,� |jd|z�S)NzDELE %srSrgs r �delez POP3.dele s�� ��~�~�i�%�/�0�0r c�&� |jd�S)N�NOOPrSrMs r �noopz POP3.noops�� ��~�~�f�%�%r c�&� |jd�S)N�RSETrSrMs r �rsetz POP3.rsets��6��~�~�f�%�%r c�J� |jd�}|j�|S)N�QUIT)rI�close)rr@s r �quitz POP3.quit"s!��R��~�~�f�%�� � � � �� r c��� |j}d|_|�|j�|j}d|_|�1 |jtj �|j�yy#t $r8}|jtjk7rt|dd�dk7r�Yd}~�Nd}~wwxYw#|j�wxYw#|j}d|_|�� |jtj �nD#t $r8}|jtjk7rt|dd�dk7r�Yd}~nd}~wwxYw|j�w#|j�wxYwwxYw)N�winerrorri&') rrvr�shutdownr#� SHUT_RDWR�OSError�errno�ENOTCONN�getattr)rrr�excs r rvz POP3.close(s,��F� !��9�9�D��D�I���� � � ��9�9�D��D�I��� !��M�M�&�"2�"2�3��J�J�L� ����� � �U�^�^�3�"�3� �A�6�%�?���� ���J�J�L���9�9�D��D�I��� !��M�M�&�"2�"2�3����� � �U�^�^�3�"�3� �A�6�%�?���� ���J�J�L��D�J�J�L�� �sp�%C�A/�/ B0�8.B+�&B3�+B0�0B3�3C�E*�C?�>E�? E�.D;�6E�;E�E�E*�E&�&E*c�,� |jd|z�S)NzRPOP %srSrTs r �rpopz POP3.rpopDs��M��~�~�i�$�.�/�/r s\+OK.[^<]*(<.*>)c�0� t||j�}|jj|j�}|s t d��ddl}|jd�|z}|j|�j�}|jd|�d|���S)Nz!-ERR APOP not supported by serverrr&zAPOP � ) r/r0� timestamp�matchrr�hashlib�group�md5� hexdigestrI)rrU�password�secret�mr��digests r �apopz POP3.apopKs��� ��x����/�� �N�N� � ���� .����A�B� B�������F�"�����V�$�.�.�0���~�~�d�F�;�<��>�)�e�"3�4� 4��}�}�V�$�$r c�&� |jd�S)N�UTF8rSrMs r �utf8z POP3.utf8us�� ��~�~�f�%�%r c�� d�}i} |jd�}|d}|D]}||�\}}|||<� |S#t$r td��wxYw)Nc�T�|jd�j�}|d|ddfS)N�asciirr&)�decoder])r,�lsts r � _parsecapzPOP3.capa.._parsecap�s-���+�+�g�&�,�,�.�C��q�6�3�q�r�7�?� "r �CAPAr&z!-ERR CAPA not supported by server)rKr)rr��capsr@�rawcaps�capline�capnm�capargss r �capaz POP3.capa{sw�� � #��� C��=�=��(�D��1�g�G�"��!*�7�!3���w�%��U� �#� � ��� C��A�B� B� C�s �-8�A c�� ts td��|jr td��|j�}d|vr td��|�t j �}|j d�}|j|j|j��|_|jjd�|_ d|_|S)Nz-ERR TLS support missing�$-ERR TLS session already established�STLSz!-ERR STLS not supported by server��server_hostnamerT) �HAVE_SSLrrr��ssl�_create_stdlib_contextrI� wrap_socketrrrr)r�contextr�r@s r �stlsz POP3.stls�s��� ���8�9� 9� � � ��D�E� E��y�y�{����~��A�B� B� �?��0�0�2�G��~�~�f�%���'�'�� � �8<� � �(�C�� ��I�I�&�&�t�,�� � $���� r rH)&rrrr0� POP3_PORTr#�_GLOBAL_DEFAULT_TIMEOUTr rr-r3r<rrFrIrKrNrQrUrXrcrErkrmrprsrwrvr�r1�compiler�r�r�r�r�r�r�r r r rr3s���)�V�H�"+��7�7� '�I� '��!�*� "� �#�� � 0�0�+�0 %�0�1�&�&� � !�80� �� � �/�0�I�=�*=� %�&� �:r c�B�eZdZ efej dd�d�Zd�Zdd�Zy)�POP3_SSLN)rr�c�n�|�tj�}||_tj ||||�yrH)r�r�r�rr )rrrrr�s r r zPOP3_SSL.__init__�s.�����4�4�6��"�D�L� �M�M�$��d�G� 4r c��tj||�}|jj||j��}|S)Nr�)rrr�r�r)rrrs r rzPOP3_SSL._create_socket�s<���&�&�t�W�5�D��<�<�+�+�D�<@�I�I�,�G�D��Kr c�� td��)Nr�)r)rr�s r r�z POP3_SSL.stls�s�� ��D�E� Er rH) rrr� POP3_SSL_PORTr#r�r rr�r r r r�r��s,�� �'4� 5� &� >� >�� 5� �  Fr r��__main__r&r\r[z Message %d:z z-----------------------)&r}r1r#rr�r�� ImportError�__all__� Exceptionrr�r�r:�LFr*r8rr�rDr�argv�ar'rNrUrXrErc�numMsgs� totalSize�range�irk�header�msgr;r,rwr r r �r�s|��� � � � ����H� �-� ��#�)�"� � �� � �� �� �"�u�� ��x�x�v  �F�4�F�@ �N�N�:�� �z��� �S�X�X�a�[��A� �!�,�,�.���F�F�3�8�8�A�;���G�G�C�H�H�Q�K���F�F�H��6�6�8��W�i� �1�g��k� "�� !���q� ����f� �m�a�� ��D� �%�$�,� �� �'�(� #� �F�F�H���u ���H��s�E�E�E