Sindbad~EG File Manager
�
%Μg����� ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl
Z
ddlZddlm
Z
ddlmZddlmZddlmZddlmZddlmZdd lmZdd
lmZddlmZddlmZdd
lmZdZe j4dk(red��d�Zd�ZGd�dej<�ZGd�dej@�Z!Gd�dejDejF�Z$Gd�dejJ�Z&Gd�d�Z'Gd�de'�Z(Gd�d e'�Z)Gd!�d"e)�Z*Gd#�d$e)�Z+Gd%�d&e'�Z,Gd'�d(e'�Z-d)�Z.Gd*�d+ej^�Z0eZ1e0Z2y),�N�)�base_events)�base_subprocess)� constants)�
coroutines)�events)�
exceptions)�futures)�selector_events)�tasks)�
transports)�logger)�SelectorEventLoop�AbstractChildWatcher�SafeChildWatcher�FastChildWatcher�PidfdChildWatcher�MultiLoopChildWatcher�ThreadedChildWatcher�DefaultEventLoopPolicy�win32z+Signals are not really supported on Windowsc�� y�N�)�signum�frames �0/usr/local/lib/python3.12/asyncio/unix_events.py�_sighandler_noopr*s����c�P� tj|�S#t$r|cYSwxYwr)�os�waitstatus_to_exitcode�
ValueError)�statuss rr"r"/s.����(�(��0�0�����
� �s��%�%c���eZdZ d�fd� Z�fd�Zd�Zd�Zd�Zd�Zd�Z dd �Z
dd
�Z dd�Zd�Z
ddddddd
�d�Z dddddddd�d�Zd�Zd�Zd�Zd�Z�xZS)�_UnixSelectorEventLoopNc�2��t�|�|�i|_yr)�super�__init__�_signal_handlers)�self�selector� __class__s �rr)z_UnixSelectorEventLoop.__init__?s���
����"� "��rc�0��t�|��tj�s,t |j
�D]}|j
|��y|j
r;tjd|�d�t|��|j
j�yy)NzClosing the loop z@ on interpreter shutdown stage, skipping signal handlers removal��source)r(�close�sys�
is_finalizing�listr*�remove_signal_handler�warnings�warn�ResourceWarning�clear)r+�sigr-s �rr1z_UnixSelectorEventLoop.closeCs����
��
��� � �"��D�1�1�2���*�*�3�/�3��$�$��
�
� 1�$��:H�I�.�%)� +�
�%�%�+�+�-�
%rc�:�|D]}|s�|j|��yr)�_handle_signal)r+�datars r�_process_self_dataz)_UnixSelectorEventLoop._process_self_dataQs ���F�������'� rc�T� tj|�stj|�rtd��|j |�|j� t
j|jj��tj|||d�}||j |< t
j|t"�t
j$|d�y#ttf$r}tt|���d}~wwxYw#t$r�}|j |=|j sI t
jd�n2#ttf$r }t'j(d|�Yd}~nd}~wwxYw|j*t*j,k(rtd|�d����d}~wwxYw)Nz3coroutines cannot be used with add_signal_handler()F����set_wakeup_fd(-1) failed: %s�sig � cannot be caught)r�iscoroutine�iscoroutinefunction� TypeError�
_check_signal�
_check_closed�signal�
set_wakeup_fd�_csock�filenor#�OSError�RuntimeError�strr�Handler*r�siginterruptr�info�errno�EINVAL)r+r:�callback�args�exc�handle�nexcs r�add_signal_handlerz)_UnixSelectorEventLoop.add_signal_handlerXsv�� �
�"�"�8�,��.�.�x�8��8�9�
9����3������ )�
� � ����!3�!3�!5�6����x��t�T�:��%+����c�"� �
�M�M�#�/�0�
����U�+���G�$� )��s�3�x�(�(�� )��� ��%�%�c�*��(�(�F��(�(��,��"�G�,�F��K�K� >��E�E��F���y�y�E�L�L�(�"�T�#��.?�#@�A�A��� �sZ�-C�.0D
�D�.D�D�
F'�F"�-E�F"�E2�E-�(F"�-E2�20F"�"F'c�� |jj|�}|�y|jr|j|�y|j |�yr)r*�get�
_cancelledr5�_add_callback_signalsafe)r+r:rXs rr<z%_UnixSelectorEventLoop._handle_signal�sH��@��&�&�*�*�3�/���>������&�&�s�+��)�)�&�1rc�� |j|� |j|=|tjk(rtj
}ntj} tj||�|js tjd�yy#t$rYywxYw#t$r2}|jtjk(rtd|�d����d}~wwxYw#ttf$r }tjd|�Yd}~yd}~wwxYw)NFrBrCr@rAT)rGr*�KeyErrorrI�SIGINT�default_int_handler�SIG_DFLrMrSrTrNrJr#rrR)r+r:�handlerrWs rr5z,_UnixSelectorEventLoop.remove_signal_handler�s��� �
���3�� ��%�%�c�*��&�-�-���0�0�G��n�n�G� ��M�M�#�w�'��$�$�
A��$�$�R�(���-� �� ��� ��y�y�E�L�L�(�"�T�#��.?�#@�A�A��� ����(�
A����:�C�@�@���
A�sA�
B�B�9C� B�B� C�(-C�C�D�,D�Dc�� t|t�std|����|tj�vrtd|����y)Nzsig must be an int, not zinvalid signal number )�
isinstance�intrFrI�
valid_signalsr#)r+r:s rrGz$_UnixSelectorEventLoop._check_signal�sO�� �
�#�s�#��6�s�g�>�?�?��f�*�*�,�,��5�c�U�;�<�<�-rc� �t|||||�Sr)�_UnixReadPipeTransport�r+�pipe�protocol�waiter�extras r�_make_read_pipe_transportz0_UnixSelectorEventLoop._make_read_pipe_transport�s��%�d�D�(�F�E�J�Jrc� �t|||||�Sr)�_UnixWritePipeTransportrks r�_make_write_pipe_transportz1_UnixSelectorEventLoop._make_write_pipe_transport�s��&�t�T�8�V�U�K�Krc ��lK�tj�5tjdt�t j
�}
ddd�
5|
j
�std��|j�}t||||||||f||d�| ��}|
j|j�|j|� |�d{��� ddd�|S#1swY��xYw7�#ttf$r�t$r+|j!�|j#��d{���7�wxYw#1swYSxYw�w)N�ignorezRasyncio.get_child_watcher() is not activated, subprocess support is not installed.)rnro)r6�catch_warnings�simplefilter�DeprecationWarningr�get_child_watcher� is_activerN�
create_future�_UnixSubprocessTransport�add_child_handler�get_pid�_child_watcher_callback�
SystemExit�KeyboardInterrupt�
BaseExceptionr1�_wait)
r+rmrV�shell�stdin�stdout�stderr�bufsizero�kwargs�watcherrn�transps
r�_make_subprocess_transportz1_UnixSelectorEventLoop._make_subprocess_transport�s/�����
$�
$�
&��!�!�(�,>�?��.�.�0�G�'���$�$�&�
#�$G�H�H��'�'�)�F�-�d�H�d�E�,1�6�6�7�6�39��6�/5�6�F�
�%�%�f�n�n�&6�$(�$@�$@�&�
J�
����!�0�
�9'�
&��(��� 1�2�
�� �
������l�l�n�$�$��
��'�0�
�se�D4�/C�
D4�A-D'�>C!�C�C!�
D4�C�D4�C!�!;D$�D�D$�$D'�'D1�,D4c�<�|j|j|�yr)�call_soon_threadsafe�_process_exited)r+�pid�
returncoder�s rrz._UnixSelectorEventLoop._child_watcher_callback�s���!�!�&�"8�"8�*�Er)�ssl�sock�server_hostname�ssl_handshake_timeout�ssl_shutdown_timeoutc���K�|r
|�2td��|�td��|�td��|�td��|��|�td��tj|�}tjtjtj
d�} |j
d�|j||��d{���nf|�td��|jtjk7s|jtj
k7rtd |����|j
d�|j||||||�
��d{���\}} || fS7��#|j��xYw7�#�w)Nz/you have to pass server_hostname when using sslz+server_hostname is only meaningful with ssl�1ssl_handshake_timeout is only meaningful with ssl�0ssl_shutdown_timeout is only meaningful with ssl�3path and sock can not be specified at the same timerFzno path and sock were specified�.A UNIX Domain Stream Socket was expected, got )r�r�)r#r!�fspath�socket�AF_UNIX�SOCK_STREAM�setblocking�sock_connectr1�family�type�_create_connection_transport)
r+�protocol_factory�pathr�r�r�r�r�� transportrms
r�create_unix_connectionz-_UnixSelectorEventLoop.create_unix_connection�s�������&� �E�G�G��*� �!N�O�O�$�0� �G�I�I�#�/� �F�H�H����� �I�K�K��9�9�T�?�D��=�=�����1C�1C�Q�G�D�
�� � ��'��'�'��d�3�3�3��|� �!B�C�C����v�~�~�-��I�I��!3�!3�3� �D�T�H�M�O�O����U�#�$(�$E�$E��"�C��"7�!5�%F�%7�7�� �8��(�"�"�%4��
��
�
����7�s=�BE#�&E�7E �8E�<BE#�=E!�>E#� E�E�E#�dT)r��backlogr�r�r��
start_servingc ��K�t|t�rtd��|�
|std��|�
|std��|��|�td��t j
|�}t
jtjtj�}|ddvrH tjt j|�j�rt j|� |j#|�nU|�td
��|j*tjk7s|j,tjk7rtd|����|j/d�t1j2||g|||||�}|r-|j5�t7j8d��d{���|S#t$rY��t$r!} tj d|| �Yd} ~ ��d} ~ wwxYw#t$rT}
|j%�|
j&t&j(k(r!d|�d �}tt&j(|�d��d}
~
w|j%��xYw7���w)
Nz*ssl argument must be an SSLContext or Noner�r�r�r)r�z2Unable to check or remove stale UNIX socket %r: %rzAddress z is already in usez-path was not specified, and no sock specifiedr�F)rf�boolrFr#r!r�r�r�r��stat�S_ISSOCK�st_mode�remove�FileNotFoundErrorrMr�error�bindr1rS�
EADDRINUSEr�r�r�r�Server�_start_servingr�sleep)
r+r�r�r�r�r�r�r�r��errrW�msg�servers
r�create_unix_serverz)_UnixSelectorEventLoop.create_unix_servers7�����c�4� ��H�I�I� �,�S��C�E�
E� �+�C��B�D�
D����� �I�K�K��9�9�T�?�D��=�=�����1C�1C�D�D��A�w�k�)�6��}�}�R�W�W�T�]�%:�%:�;�� � �$��
�� � �$���|� �C�E�E����v�~�~�-��I�I��!3�!3�3� �D�T�H�M�O�O�
������#�#�D�4�&�2B�$'��2G�$8�:����!�!�#��+�+�a�.� � ��
��S)����6��L�L�"*�+/��6�6��6���
��
�
���9�9�� 0� 0�0�%�T�H�,>�?�C�!�%�"2�"2�C�8�d�B���
��
�
����&
!�si�BI�AF'�"G�3B-I� I�!I�' G�0I�2G�:G�I�G�I� I�'AH6�6I�Ic
��K� tj |j�} tj|�j}|r|n|}|sy|j�} |j| d|||||d�| �d{���S#t$rtjd��wxYw#ttjf$r}tjd��d}~wwxYw#t$rtjd��wxYw7�~�w)Nzos.sendfile() is not availableznot a regular filer)
r!�sendfile�AttributeErrorr �SendfileNotAvailableErrorrL�io�UnsupportedOperation�fstat�st_sizerMr{�_sock_sendfile_native_impl)
r+r��file�offset�countrLr��fsize� blocksize�futs
r�_sock_sendfile_nativez,_UnixSelectorEventLoop._sock_sendfile_nativebs���� 2��K�K� M��[�[�]�F� M��H�H�V�$�,�,�E�#�E�� ���� � �"���'�'��T�4��(.��y�!� E��y���%� 2��6�6�0�2�
2� 2��
�� 7� 7�8� M��6�6�7K�L�L�� M��� M��6�6�7K�L�L� M���sV�C<�B�B"�C�6C<�;C:�<C<�B�C<�"C�;C�C�C<�C7�7C<c
��|j�} |�|j|�|j�r|j|||�y|r/||z
}|dkr%|j|||�|j |�y tj| |||�}
|
dk(r%|j|||�|j |�y||
z
}||
z
}|�|j||�|j| |j|| ||||||�
y#ttf$r;|�|j||�|j| |j|| ||||||�
Yyt$r�}|�Q|jtjk(r4t|�t ur#t!dtj�}||_|}|dk(r:t%j&d�}
|j|||�|j)|
�n)|j|||�|j)|�Yd}~yYd}~yd}~wt*t,f$r�t.$r.}|j|||�|j)|�Yd}~yd}~wwxYw)Nrzsocket is not connectedzos.sendfile call failed)rL�
remove_writer� cancelled�_sock_sendfile_update_filepos�
set_resultr!r��_sock_add_cancellation_callback�
add_writerr��BlockingIOError�InterruptedErrorrMrS�ENOTCONNr��ConnectionError� __cause__r r��
set_exceptionr�r�r�)r+r��
registered_fdr�rLr�r�r��
total_sent�fd�sentrW�new_excr�s rr�z1_UnixSelectorEventLoop._sock_sendfile_native_implysT��
�[�[�]���$�
���}�-��=�=�?��.�.�v�v�z�J����
�*�I��A�~��2�2�6�6�:�N����z�*��1 F��;�;�r�6�6�9�=�D�J�q�y��2�2�6�6�:�N����z�*��$����d�"�
� �(��8�8��d�C�����D�$C�$C�S� "�D�&� &��y�*�F��[ �!1�2� B��$��4�4�S�$�?��O�O�B�� ?� ?����f�"�E�9�j�
B�� '��)��I�I����/���I�_�4�
*�-�u�~�~�?��$'��!����Q��
!�:�:�-�/���2�2�6�6�:�N��!�!�#�&��2�2�6�6�:�N��!�!�#�&�&�'���-�.� ��� #��.�.�v�v�z�J����c�"�"�� #�s,�:C?�?AI�I�B6H�I�+$I�Ic�Z�|dkDr&tj||tj�yy�Nr)r!�lseek�SEEK_SET)r+rLr�r�s rr�z4_UnixSelectorEventLoop._sock_sendfile_update_filepos�s"����>��H�H�V�V�R�[�[�1�rc�6�����fd�}|j|�y)Nc�v��|j�r(�j�}|dk7r�j|�yyy)Nr@)r�rLr�)r�r�r+r�s ��r�cbzB_UnixSelectorEventLoop._sock_add_cancellation_callback.<locals>.cb�s6����}�}���[�[�]����8��&�&�r�*��r)�add_done_callback)r+r�r�r�s` ` rr�z6_UnixSelectorEventLoop._sock_add_cancellation_callback�s��� +�
���b�!rr�NN)�__name__�
__module__�__qualname__r)r1r>rZr<r5rGrprsr�rr�r�r�r�r�r��
__classcell__�r-s@rr&r&9s�����
#�.�(�+�Z2��@
=�@D�(,�K�AE�)-�L�04��BF�*.�0#��4� �"&�!%�0#�f*.�G��s��"&�!%��G�R�.DF�L2�"rr&c���eZdZdZd�fd� Zd�Zd�Zd�Zd�Zd�Z d�Z
d �Zd
�Zd�Z
d�Zej fd
�Zdd�Zd�Zd�Z�xZS)rjic�4��t�|�|�||jd<||_||_|j�|_||_d|_d|_ tj|j�j}tj|�sJtj|�s5tj |�s d|_d|_d|_t#d��tj$|jd�|jj'|jj(|�|jj'|j*|j|j,�|�,|jj't.j0|d�yy)NrlFz)Pipe transport is for pipes/sockets only.)r(r)�_extra�_loop�_piperL�_fileno� _protocol�_closing�_pausedr!r�r�r��S_ISFIFOr��S_ISCHRr#�set_blocking� call_soon�connection_made�_add_reader�_read_readyr
�_set_result_unless_cancelled)r+�looprlrmrnro�moder-s �rr)z_UnixReadPipeTransport.__init__�s.���
�����"����F����
���
��{�{�}���!�����
�����x�x����%�-�-���
�
�d�#��
�
�d�#����T�"��D�J��D�L�!�D�N��H�I�I�
������e�,��
�
���T�^�^�;�;�T�B��
�
���T�-�-�!�\�\�4�+;�+;� =����J�J� � ��!E�!E�!'��
/�rc�^�|j�sy|jj||�yr)�
is_readingr�r�)r+r�rUs rr�z"_UnixReadPipeTransport._add_reader�s#����� ���
�
���r�8�,rc�:�|jxr
|jSr)r�r��r+s rrz!_UnixReadPipeTransport.is_reading�s���<�<��5��
�
�$5�5rc�t�|jjg}|j�|jd�n|jr|jd�|jd|j
���t
|jdd�}|j�W|�Utj||j
tj�}|r|jd�nA|jd�n/|j�|jd�n|jd�djd j|��S)
N�closed�closing�fd=� _selector�polling�idle�open�<{}>� )r-r�r��appendr�r��getattrr�r�_test_selector_event� selectors�
EVENT_READ�format�join)r+rRr,r
s r�__repr__z_UnixReadPipeTransport.__repr__�s������'�'�(���:�:���K�K��!�
�]�]��K�K� �"����c�$�,�,��(�)��4�:�:�{�D�9���:�:�!�h�&:�%�:�:��$�,�,� �(<�(<�>�G�����I�&����F�#�
�Z�Z�
#��K�K����K�K��!��}�}�S�X�X�d�^�,�,rc�h� tj|j|j�}|r|jj|�y|jj�rtjd|�d|_
|jj|j�|jj|jj�|jj|jd�y#tt f$rYyt"$r}|j%|d�Yd}~yd}~wwxYw)N�%r was closed by peerTz"Fatal read error on pipe transport)r!�readr��max_sizer��
data_receivedr�� get_debugrrRr��_remove_readerr��eof_received�_call_connection_lostr�r�rM�_fatal_error)r+r=rWs rr�z"_UnixReadPipeTransport._read_readys��� G��7�7�4�<�<����7�D�����,�,�T�2��:�:�'�'�)��K�K� 7��>� $��
��
�
�)�)�$�,�,�7��
�
�$�$�T�^�^�%@�%@�A��
�
�$�$�T�%?�%?��F�� �!1�2� ��� I����c�#G�H�H�� I�s�*C<�<D1�
D1�D,�,D1c���|j�syd|_|jj|j�|jj�rt
jd|�yy)NTz%r pauses reading)rr�r�rr�rr�debugrs r�
pause_readingz$_UnixReadPipeTransport.pause_readingsP����� ������
�
�!�!�$�,�,�/��:�:���!��L�L�,�d�3�"rc��|js|jsyd|_|jj|j|j
�|jj
�rtjd|�yy)NFz%r resumes reading) r�r�r�r�r�r�rrr"rs r�resume_readingz%_UnixReadPipeTransport.resume_reading%s[���=�=���������
�
���t�|�|�T�-=�-=�>��:�:���!��L�L�-�t�4�"rc��||_yr�r��r+rms r�set_protocolz#_UnixReadPipeTransport.set_protocol-� ��!��rc��|jSrr'rs r�get_protocolz#_UnixReadPipeTransport.get_protocol0����~�~�rc��|jSr�r�rs r�
is_closingz!_UnixReadPipeTransport.is_closing3����}�}�rc�@�|js|jd�yyr)r��_closers rr1z_UnixReadPipeTransport.close6s���}�}��K�K���rc�v�|j�-|d|��t|��|jj�yy�Nzunclosed transport r/�r�r8r1�r+�_warns r�__del__z_UnixReadPipeTransport.__del__:�5���:�:�!��'��x�0�/�$�O��J�J����"rc�<�t|t�rQ|jtjk(r4|jj�rDt
jd||d��n*|jj||||jd��|j|�y�Nz%r: %sT��exc_info)�message� exceptionr�rm)rfrMrS�EIOr�rrr"�call_exception_handlerr�r3�r+rWr?s rr z#_UnixReadPipeTransport._fatal_error?sr���s�G�$����e�i�i�)?��z�z�#�#�%����X�t�W�t�D��J�J�-�-�"� �!� �N�N� /�
�
���C�rc��d|_|jj|j�|jj |j
|�y�NT)r�r�rr�r�r�r+rWs rr3z_UnixReadPipeTransport._closeMs9����
��
�
�!�!�$�,�,�/��
�
���T�7�7��=rc�� |jj|�|jj�d|_d|_d|_y#|jj�d|_d|_d|_wxYwr�r��connection_lostr�r1r�rFs rrz,_UnixReadPipeTransport._call_connection_lostR�g�� ��N�N�*�*�3�/��J�J�����D�J�!�D�N��D�J��
�J�J�����D�J�!�D�N��D�J���A
�
1A>r��zFatal error on pipe transport)r�r�r�rr)r�rrr�r#r%r)r,r0r1r6r7r9r r3rr�r�s@rrjrj�s]����H�/�<-�
6�-�*G�$4�5�"����%�M�M��
�>�
rrjc���eZdZd�fd� Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �Zd
�Zd�Z
d�Zej fd
�Zd�Zdd�Zdd�Zd�Z�xZS)rrc���t�
|�||�||jd<||_|j �|_||_t�|_d|_ d|_
tj|j
�j}tj|�}tj |�}tj"|�} |s$|s"| s d|_d|_d|_t%d��tj&|j
d�|j(j+|jj,|�| s!|rdt.j0j3d�sE|j(j+|j(j4|j
|j6�|�,|j(j+t8j:|d�yy)NrlrFz?Pipe transport is only for pipes, sockets and character devices�aix)r(r)r�r�rLr�r�� bytearray�_buffer�
_conn_lostr�r!r�r�r�r�r�r�r#r�r�r�r�r2�platform�
startswithr�r�r
r�)r+r�rlrmrnror�is_char�is_fifo� is_socketr-s �rr)z _UnixWritePipeTransport.__init___si���
�����%�"����F����
��{�{�}���!��� �{��������
��x�x����%�-�-���,�,�t�$���-�-��%���M�M�$�'� ��7�i��D�J��D�L�!�D�N��D�E�
E� ������e�,��
�
���T�^�^�;�;�T�B�
�����)@�)@��)G��J�J� � ����!7�!7�!%���t�/?�/?�
A����J�J� � ��!E�!E�!'��
/�rc��|jjg}|j�|jd�n|jr|jd�|jd|j
���t
|jdd�}|j�{|�ytj||j
tj�}|r|jd�n|jd�|j�}|jd|���n/|j�|jd�n|jd�d jd
j|��S)Nrrrr r
rzbufsize=rr
r)r-r�r�rr�r�rr�rrr�EVENT_WRITE�get_write_buffer_sizerr)r+rRr,r
r�s rrz _UnixWritePipeTransport.__repr__�s�����'�'�(���:�:���K�K��!�
�]�]��K�K� �"����c�$�,�,��(�)��4�:�:�{�D�9���:�:�!�h�&:�%�:�:��$�,�,� �(=�(=�?�G�����I�&����F�#��0�0�2�G��K�K�(�7�)�,�-�
�Z�Z�
#��K�K����K�K��!��}�}�S�X�X�d�^�,�,rc�,�t|j�Sr)�lenrQrs rrZz-_UnixWritePipeTransport.get_write_buffer_size�s���4�<�<� � rc���|jj�rtjd|�|jr|jt
��y|j�y)Nr)r�rrrRrQr3�BrokenPipeErrorrs rr�z#_UnixWritePipeTransport._read_ready�s@���:�:���!��K�K�/��6��<�<��K�K��)�*��K�K�Mrc��t|t�rt|�}|sy|js|jrH|jt
jk\rtjd�|xjdz
c_y|jss tj|j|�}|t'|�k(ry|dkDrt|�|d}|j(j+|j|j,�|xj|z
c_ |j/�y#ttf$rd}Y��tt f$r�t"$r1}|xjdz
c_|j%|d�Yd}~yd}~wwxYw)Nz=pipe closed by peer or os.write(pipe, data) raised exception.rr�#Fatal write error on pipe transport)rfrP�
memoryviewrRr�r�!LOG_THRESHOLD_FOR_CONNLOST_WRITESr�warningrQr!�writer�r�r�r�r�r�r r\r��_add_writer�_write_ready�_maybe_pause_protocol)r+r=�nrWs rrdz_UnixWritePipeTransport.write�s7���d�I�&��d�#�D����?�?�d�m�m����)�"M�"M�M���� H�I��O�O�q� �O���|�|�
��H�H�T�\�\�4�0���C��I�~���Q��!�$�'���+���J�J�"�"�4�<�<��1B�1B�C��������"�"�$��$�%5�6�
���� 1�2�
�� �
����1�$���!�!�#�'L�M���
�s� D$�$E?�7E?�'E:�:E?c�� tj|j|j�}|t |j�k(r�|jj�|jj|j�|j�|jr6|jj|j�|jd�y|dkDr|jd|�=yy#ttf$rYyttf$r�t $rp}|jj�|xj"dz
c_|jj|j�|j%|d�Yd}~yd}~wwxYw)Nrrr`)r!rdr�rQr\r9r��_remove_writer�_maybe_resume_protocolr�rrr�r�r�r�r�rRr )r+rhrWs rrfz$_UnixWritePipeTransport._write_ready�s.�� %�������t�|�|�4�A��C����%�%����"�"�$��
�
�)�)�$�,�,�7��+�+�-��=�=��J�J�-�-�d�l�l�;��.�.�t�4���Q���L�L��!��$���) �!1�2� ���-�.� ��� J��L�L��� ��O�O�q� �O�
�J�J�%�%�d�l�l�3����c�#H�I�I��
J�s�*C,�,F�=F�A&E?�?Fc��yrErrs r�
can_write_eofz%_UnixWritePipeTransport.can_write_eof����rc���|jryd|_|jsL|jj|j�|jj|jd�yyrE)r�rQr�rr�r�rrs r� write_eofz!_UnixWritePipeTransport.write_eof�sO���=�=����
��|�|��J�J�%�%�d�l�l�3��J�J� � ��!;�!;�T�B�rc��||_yrr'r(s rr)z$_UnixWritePipeTransport.set_protocol�r*rc��|jSrr'rs rr,z$_UnixWritePipeTransport.get_protocol�r-rc��|jSrr/rs rr0z"_UnixWritePipeTransport.is_closing�r1rc�X�|j�|js|j�yyyr)r�r�rprs rr1z_UnixWritePipeTransport.close�s$���:�:�!�$�-�-��N�N��+8�!rc�v�|j�-|d|��t|��|jj�yyr5r6r7s rr9z_UnixWritePipeTransport.__del__r:rc�&�|jd�yr)r3rs r�abortz_UnixWritePipeTransport.aborts�����D�rc��t|t�r4|jj�rDt j
d||d��n*|jj
||||jd��|j|�yr<) rfrMr�rrr"rBr�r3rCs rr z$_UnixWritePipeTransport._fatal_error sc���c�7�#��z�z�#�#�%����X�t�W�t�D��J�J�-�-�"� �!� �N�N� /�
�
���C�rc�>�d|_|jr%|jj|j�|jj�|jj
|j�|jj|j|�yrE) r�rQr�rjr�r9rr�rrFs rr3z_UnixWritePipeTransport._closesf����
��<�<��J�J�%�%�d�l�l�3��������
�
�!�!�$�,�,�/��
�
���T�7�7��=rc�� |jj|�|jj�d|_d|_d|_y#|jj�d|_d|_d|_wxYwrrHrFs rrz-_UnixWritePipeTransport._call_connection_lostrJrKr�rLr)r�r�r�r)rrZr�rdrfrmrpr)r,r0r1r6r7r9rwr r3rr�r�s@rrrrr\sd���#/�J-�0!��!%�F%�8�C�"����
%�M�M��
��>�rrrc��eZdZd�Zy)r|c
���d}|tjk(r6tjj d�rtj�\}} tj|f||||d|d�|��|_|�=|j�t|j�d|��|j_d}|�!|j�|j�yy#|�!|j�|j�wwxYw)NrOF)r�r�r�r��universal_newlinesr��wb)� buffering)
�
subprocess�PIPEr2rSrTr��
socketpair�Popen�_procr1r�detachr�) r+rVr�r�r�r�r�r��stdin_ws r�_startz_UnixSubprocessTransport._start+s������J�O�O�#����(?�(?��(F�
$�.�.�0�N�E�7� �#�)�)��E�!��v�f�#(�'�E�=C�E�D�J��"����
�#'����(8�$�'�#R��
�
� ����"����
��
�
��#��w�"����
��
�
��#�s
�
A!C�%C7N)r�r�r�r�rrrr|r|)s�� rr|c�@�eZdZ d
d�Zd�Zd�Zd�Zd�Zd�Zd�Z d �Z
y)rNc�\�|jtk7rtjddd��yy)Nr�P{name!r} is deprecated as of Python 3.12 and will be removed in Python {remove}.����r�)r�r�r6�_deprecated)�clss r�__init_subclass__z&AbstractChildWatcher.__init_subclass__Xs,���>�>�X�%�� � �!7�;�%,�
.�&rc�� t��r��NotImplementedError�r+r�rUrVs rr}z&AbstractChildWatcher.add_child_handler_s�� �"�#�#rc�� t��rr��r+r�s r�remove_child_handlerz)AbstractChildWatcher.remove_child_handlerjs�� 1�
"�#�#rc�� t��rr��r+r�s r�attach_loopz AbstractChildWatcher.attach_looprs�� �"�#�#rc�� t��rr�rs rr1zAbstractChildWatcher.close|s�� �"�#�#rc�� t��rr�rs rrzzAbstractChildWatcher.is_active�s�� �"�#�#rc�� t��rr�rs r� __enter__zAbstractChildWatcher.__enter__�s�� *�"�#�#rc�� t��rr��r+�a�b�cs r�__exit__zAbstractChildWatcher.__exit__�s��(�!�#�#r)�returnN)r�r�r�r�r}r�r�r1rzr�r�rrrrrAs/���,.� $�$�$�$�$�$�$rrc�>�eZdZ d�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
y )
rc��|Srrrs rr�zPidfdChildWatcher.__enter__�����rc��yrr)r+�exc_type� exc_value�
exc_tracebacks rr�zPidfdChildWatcher.__exit__����rc��yrErrs rrzzPidfdChildWatcher.is_active�rnrc��yrrrs rr1zPidfdChildWatcher.close�r�rc��yrrr�s rr�zPidfdChildWatcher.attach_loop�r�rc��tj�}tj|�}|j ||j
||||�yr)r�get_running_loopr!�
pidfd_openr��_do_wait)r+r�rUrVr��pidfds rr}z#PidfdChildWatcher.add_child_handler�s:���&�&�(���
�
�c�"�������
�
�s�E�8�T�Jrc�$�tj�}|j|� tj|d�\}}t|�}tj|�|||g|���y#t$rd}tjd|�Y�CwxYw)Nr�zJchild process pid %d exit status already read: will report returncode 255)
rr�rr!�waitpidr"�ChildProcessErrorrrcr1) r+r�r�rUrVr��_r$r�s rr�zPidfdChildWatcher._do_wait�s����&�&�(�����E�"� 8��
�
�3��*�I�A�v�0��7�J�
�������j�(�4�(��!� ��J��N�N�.��
� �s�A+�+!B�Bc��yrErr�s rr�z&PidfdChildWatcher.remove_child_handler����rN)r�r�r�r�r�rzr1r�r}r�r�rrrrr�s0�� ��
��
�
�K�
)�&rrc�6�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z y) �BaseChildWatcherc� �d|_i|_yr)r��
_callbacksrs rr)zBaseChildWatcher.__init__�s����
���rc�&�|jd�yr)r�rs rr1zBaseChildWatcher.close�s������rc�V�|jduxr|jj�Sr)r��
is_runningrs rrzzBaseChildWatcher.is_active�s#���z�z��%�A�$�*�*�*?�*?�*A�Arc��t��rr�)r+�expected_pids r�_do_waitpidzBaseChildWatcher._do_waitpid����!�#�#rc��t��rr�rs r�_do_waitpid_allz BaseChildWatcher._do_waitpid_all�r�rc�^�|j�(|�&|jrtjdt�|j�)|jjtj�||_|�;|jtj|j�|j�yy)NzCA loop is being detached from a child watcher with pending handlers)r�r�r6r7�RuntimeWarningr5rI�SIGCHLDrZ� _sig_chldr�r�s rr�zBaseChildWatcher.attach_loop�s����:�:�!�d�l�t����M�M�=��
�
�:�:�!��J�J�,�,�V�^�^�<���
����#�#�F�N�N�D�N�N�C�
� � �"�rc�� |j�y#ttf$r�t$r(}|jjd|d��Yd}~yd}~wwxYw)N�$Unknown exception in SIGCHLD handler)r?r@)r�r�r�r�r�rBrFs rr�zBaseChildWatcher._sig_chld�sX�� �� � �"���-�.� ��� �
�J�J�-�-�A� �/�
�
�� �s��A�A�AN)
r�r�r�r)r1rzr�r�r�r�rrrr�r��s&����B�$�$�#�(rr�c�N��eZdZ �fd�Z�fd�Zd�Zd�Zd�Zd�Zd�Z d�Z
�xZS) rc�R��t�|��tjddd��y)Nrr�r�r�)r(r)r6r��r+r-s �rr)zSafeChildWatcher.__init__s'���
�������/�;�%,� .rc�V��|jj�t�|�
�yr)r�r9r(r1r�s �rr1zSafeChildWatcher.closes���������
��
�rc��|Srrrs rr�zSafeChildWatcher.__enter__r�rc��yrrr�s rr�zSafeChildWatcher.__exit__r�rc�H�||f|j|<|j|�yr)r�r�r�s rr}z"SafeChildWatcher.add_child_handler"s%�� (�$�/������
����rc�>� |j|=y#t$rYywxYw�NTF�r�r`r�s rr�z%SafeChildWatcher.remove_child_handler(�(�� �����$���� �� ���
� �c�Z�t|j�D]}|j|��yr�r4r�r�r�s rr�z SafeChildWatcher._do_waitpid_all/s#������(�C����S�!�)rc�� tj|tj�\}}|dk(ryt|�}|jj�rt
jd||� |jj|�\}}|||g|���y#t$r|}d}t
jd|�Y�OwxYw#t$r7|jj�rt
jd|d��YyYywxYw)Nr�$process %s exited with returncode %sr��8Unknown child process pid %d, will report returncode 255�'Child watcher got an unexpected pid: %rTr=)
r!r��WNOHANGr"r�rrr"r�rcr��popr`)r+r�r�r$r�rUrVs rr�zSafeChildWatcher._do_waitpid4s��� 7��*�*�\�2�:�:�>�K�C���a�x��/��7�J��z�z�#�#�%����C�)�:�7� -�!�_�_�0�0��5�N�H�d�
�S�*�,�t�,��7!� ��C��J��N�N�J��
� ��(� 3��z�z�#�#�%����H�"�T�3�&� 3�s#�'B�-B?�#B<�;B<�?;C?�>C?)r�r�r�r)r1r�r�r}r�r�r�r�r�s@rrrs0����.���
���"�
-rrc�H��eZdZ �fd�Z�fd�Zd�Zd�Zd�Zd�Zd�Z �xZ
S)rc���t�|��tj�|_i|_d|_tjddd��y)Nrrr�r�r�) r(r)� threading�Lock�_lock�_zombies�_forksr6r�r�s �rr)zFastChildWatcher.__init__asC���
�����^�^�%��
���
�������/�;�%,� .rc���|jj�|jj�t�|��yr)r�r9r�r(r1r�s �rr1zFastChildWatcher.closeks,����������
�
����
��
�rc�t�|j5|xjdz
c_|cddd�S#1swYyxYw)Nr)r�r�rs rr�zFastChildWatcher.__enter__ps$��
�Z�Z��K�K�1��K���Z�Z�s�.�7c�>�|j5|xjdzc_|js|js
ddd�yt|j�}|jj �ddd�tjd�y#1swY� xYw)Nrz5Caught subprocesses termination from unknown pids: %s)r�r�r�rOr9rrc)r+r�r�r��collateral_victimss rr�zFastChildWatcher.__exit__vsp��
�Z�Z��K�K�1��K��{�{�$�-�-�� �Z�"%�T�]�]�!3���M�M���!�� ���C�� ��Z�s�/B�/B�Bc���|j5 |jj|�} ddd�||g|���y#t$r||f|j|<Yddd�ywxYw#1swY�<xYwr)r�r�r�r`r�)r+r�rUrVr�s rr}z"FastChildWatcher.add_child_handler�so���Z�Z�
�!�]�]�.�.�s�3�
�� ��j�(�4�(��
�
�'/��~�����$��
�Z�
���Z�s&�A&�>�A#�A&�"A#�#A&�&A/c�>� |j|=y#t$rYywxYwr�r�r�s rr�z%FastChildWatcher.remove_child_handler�r�r�c�� tjdtj�\}}|dk(ryt|�}|j
5 |jj|�\}}|jj�rtjd||� ddd��tjd||�n
|||g�����#t$rYywxYw#t$r\|jrK||j|<|jj�rtjd||�Yddd���4d}Y��wxYw#1swY��xYw)Nr@rr�z,unknown process %s exited with returncode %sz8Caught subprocess termination from unknown pid: %d -> %d)r!r�r�r"r�r�r�r�r�rrr"r`r�r�rc)r+r�r$r�rUrVs rr�z FastChildWatcher._do_waitpid_all�s8���
<� �j�j��R�Z�Z�8���V�
�!�8��3�F�;�
����6�%)�_�_�%8�%8��%=�N�H�d��z�z�+�+�-����%K�%(�*�6�!�&������ #�Z�1���j�0�4�0�K��%�
��
�� �
$��{�{�-7��
�
�c�*��:�:�/�/�1�"�L�L�*>�),�j�:�!��� $�H�
$����sN�'C�D=� C�'2D=� C�C�AD:�*D=�5D:�7D=�9D:�:D=�=E)r�r�r�r)r1r�r�r}r�r�r�r�s@rrrWs+����.��
� �)��(1rrc�P�eZdZ d�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �Zd
�Zd�Z
y)
rc�P�i|_d|_tjddd��y)Nrr�r�r�)r��_saved_sighandlerr6r�rs rr)zMultiLoopChildWatcher.__init__�s*�����!%������4�;�%,� .rc��|jduSr)r�rs rrzzMultiLoopChildWatcher.is_active�s���%�%�T�1�1rc�Z�|jj�|j�ytjtj
�}||jk7rtjd�d|_ytjtj
|j�d|_y)Nz+SIGCHLD handler was changed by outside code) r�r9r�rI� getsignalr�r�rrc)r+rds rr1zMultiLoopChildWatcher.close�sz���������!�!�)���"�"�6�>�>�2���d�n�n�$��N�N�H�I�"&���
�M�M�&�.�.�$�*@�*@�A�!%��rc��|Srrrs rr�zMultiLoopChildWatcher.__enter__�r�rc��yrr�r+r��exc_val�exc_tbs rr�zMultiLoopChildWatcher.__exit__�r�rc�r�tj�}|||f|j|<|j|�yr)rr�r�r�)r+r�rUrVr�s rr}z'MultiLoopChildWatcher.add_child_handler�s5���&�&�(�� $�h��5������
����rc�>� |j|=y#t$rYywxYwr�r�r�s rr�z*MultiLoopChildWatcher.remove_child_handler�r�r�c�8�|j�ytjtj|j�|_|j�*t j
d�tj|_tjtjd�y)NzaPrevious SIGCHLD handler was set by non-Python code, restore to default handler on watcher close.F)r�rIr�r�rrcrcrQr�s rr�z!MultiLoopChildWatcher.attach_loopso��
�!�!�-��!'���v�~�~�t�~�~�!N����!�!�)��N�N�J�
K�%+�^�^�D�"� ���F�N�N�E�2rc�Z�t|j�D]}|j|��yrr�r�s rr�z%MultiLoopChildWatcher._do_waitpid_alls#������(�C����S�!�)rc�*� tj|tj�\}}|dk(ryt|�}d} |jj|�\}}}|j�rtjd||�y|r'|j�rtjd||�|j|||g|���y#t$r|}d}tjd|�d}Y��wxYw#t$rtjd|d� �YywxYw)
NrTr�r�F�%Loop %r that handles pid %r is closedr�r�r=)r!r�r�r"r�rrcr�r�� is_closedrr"r�r`) r+r�r�r$r�� debug_logr�rUrVs rr�z!MultiLoopChildWatcher._do_waitpids
�� ��*�*�\�2�:�:�>�K�C���a�x��/��7�J��I� L�#'�?�?�#6�#6�s�#;� �D�(�D��~�~�����F��c�R�����!1��L�L�!G�!-�z�;�)��)�)�(�C��K�d�K��=!� ��C��J��N�N�J��
��I� ��$� /�
�N�N�D���
/� /�s"�'C�C.�%C+�*C+�.!D�Dc�� |j�y#ttf$r�t$rt j
dd��YywxYw)Nr�Tr=)r�r�r�r�rrc)r+rrs rr�zMultiLoopChildWatcher._sig_chld<sE�� R�� � �"���-�.� ��� R��N�N�A�D�Q� R�s��/A�AN)r�r�r�r)rzr1r�r�r}r�r�r�r�r�rrrrr�sA�� �$.�2�
&��
���3�""�#L�JRrrc�b�eZdZ d�Zd�Zd�Zd�Zd�Zejfd�Z
d�Zd�Zd �Z
d
�Zy)rc�F�tjd�|_i|_yr�)� itertoolsr��_pid_counter�_threadsrs rr)zThreadedChildWatcher.__init__Rs��%�O�O�A�.�����
rc��yrErrs rrzzThreadedChildWatcher.is_activeVrnrc��yrrrs rr1zThreadedChildWatcher.closeYr�rc��|Srrrs rr�zThreadedChildWatcher.__enter__\r�rc��yrrr�s rr�zThreadedChildWatcher.__exit___r�rc���t|jj��D�cgc]}|j�r|��}}|r||j�d�t
|��yycc}w)Nz0 has registered but not finished child processesr/)r4r�values�is_aliver-r8)r+r8�thread�threadss rr9zThreadedChildWatcher.__del__bse��(,�T�]�]�-A�-A�-C�(D�)�(D�f��o�o�'��(D��)���T�^�^�$�$T�U�!��
���)s�A!c���tj�}tj|jdt|j���||||fd��}||j|<|j�y)Nzasyncio-waitpid-T)�target�namerV�daemon) rr�r��Threadr��nextr
r�start)r+r�rUrVr�rs rr}z&ThreadedChildWatcher.add_child_handlerjsf���&�&�(���!�!��)9�)9�)9�$�t�?P�?P�:Q�9R�'S�(,�c�8�T�'B�)-�/��$��
�
�c�����rc��yrErr�s rr�z)ThreadedChildWatcher.remove_child_handlersr�rc��yrrr�s rr�z ThreadedChildWatcher.attach_loopyr�rc�� tj|d�\}}t|�}|j�rt j
d||� |j�rt jd||�n|j|||g|���|jj|�y#t$r|}d}t jd|�Y�~wxYw)Nrr�r�r�r)r!r�r"rrr"r�rcrr�rr�)r+r�r�rUrVr�r$r�s rr�z ThreadedChildWatcher._do_waitpid|s��� 7��*�*�\�1�5�K�C��0��7�J��~�~�����C�)�:�7��>�>���N�N�B�D�#�N�%�D�%�%�h��Z�G�$�G��
�
���,�'��'!� ��C��J��N�N�J��
� �s�B'�'#C
�C
N)r�r�r�r)rzr1r�r�r6r7r9r}r�r�r�rrrrrEsB��
���
��
�%�M�M����
�(rrc��ttd�sy tj�}tjtj|d��y#t
$rYywxYw)Nr�FrT)�hasattrr!�getpidr1r�rM)r�s r�
can_use_pidfdr"�sO���2�|�$����i�i�k��
������s�A�&�'�������s�=A� A�Ac�@��eZdZ eZ�fd�Zd�Z�fd�Zd�Zd�Z �xZ
S)�_UnixDefaultEventLoopPolicyc�0��t�|��d|_yr)r(r)�_watcherr�s �rr)z$_UnixDefaultEventLoopPolicy.__init__�s���
������
rc��tj5|j�)t�rt �|_nt�|_ddd�y#1swYyxYwr)rr�r&r"rrrs r�
_init_watcherz)_UnixDefaultEventLoopPolicy._init_watcher�s6��
�\�\��}�}�$� �?�$5�$7�D�M�$8�$:�D�M��\�\�s�6A�Ac���� t�|�|�|j�Etj�tj
�ur|jj
|�yyyr)r(�set_event_loopr&r��current_thread�main_threadr�)r+r�r-s �rr*z*_UnixDefaultEventLoopPolicy.set_event_loop�sX��� � ���t�$��M�M�%��(�(�*�i�.C�.C�.E�E��M�M�%�%�d�+�F�
&rc�� |j�|j�tjddd��|jS)Nryr�r�r�)r&r(r6r�rs rryz-_UnixDefaultEventLoopPolicy.get_child_watcher�sE�� ��=�=� ���� ����0�:�BI� K��}�}�rc�� |j�|jj�||_tjddd��y)N�set_child_watcherr�r�r�)r&r1r6r�)r+r�s rr/z-_UnixDefaultEventLoopPolicy.set_child_watcher�sB��2��=�=�$��M�M���!���
����0�:�BI� Kr)r�r�r�r&�
_loop_factoryr)r(r*ryr/r�r�s@rr$r$�s%���D�*�M��;�,��Krr$)3rSr�r r!rrIr�r�r�r2r�r6�rrrrrr r
rrr
�logr�__all__rS�ImportErrorrr"�BaseSelectorEventLoopr&�
ReadTransportrj�_FlowControlMixin�WriteTransportrr�BaseSubprocessTransportr|rrr�rrrrr"�BaseDefaultEventLoopPolicyr$rrrrr�<module>r;se��8�� �� ��
�
���
�����������������<�<�7��
�C�
D�D� �
�P"�_�B�B�P"�fM�Z�5�5�M�`J�j�:�:�(�7�7�J�Z ��F�F� �0S$�S$�l7�,�7�t2�+�2�jN-�'�N-�bj1�'�j1�Z~R�0�~R�BO(�/�O(�b �6K�&�"C�"C�6K�r+��4�r
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists