add-determinism 0.7.3

RPM buildroot helper to strip nondeterministic bits in files
Documentation
�

��Vc6�cs��dZdZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddl	mZddl	mZddl	m
Z
dd	l	mZdd
l	mZddl	mZddl	mZdd
lmZd�ZGd�dejej��ZGd�deej��ZGd�deej��ZGd�de��ZGd�deej��ZGd�deeej��Z Gd�deeej��Z!Gd�de
j"��Z#dS)z�Event loop using a proactor and related classes.

A proactor is a "notify-on-completion" multiplexer.  Currently a
proactor is only implemented on Windows with IOCP.
)�BaseProactorEventLoop�N�)�base_events)�	constants)�futures)�
exceptions)�	protocols)�sslproto)�
transports)�trsock)�loggercs��tj|��|jd<	|���|jd<nE#tj$r3|j���rtj	d|d���YnwxYwd|jvr?	|�
��|jd<dS#tj$rd|jd<YdSwxYwdS)N�socketZsocknamezgetsockname() failed on %rT�Zexc_info�peername)r
�TransportSocket�_extraZgetsocknamerZerror�_loop�	get_debugr�warningZgetpeername)�	transport�sock�  �0/usr/lib64/python3.11/asyncio/proactor_events.py�_set_socket_extrars
��!'�!7��!=�!=�I��X��C�'+�'7�'7�'9�'9�	���$�$���<�C�C�C��?�$�$�&�&�	C��N�,�d�T�
C�
C�
C�
C���C����
��)�)�0�	0�+/�+;�+;�+=�+=�I��Z�(�(�(���|�	0�	0�	0�+/�I��Z�(�(�(�(�	0����0�0s!�;�?A=�<A=�
B(�(C�Ccsz��eZdZdZ		d�fd�	Zd�Zd�Zd�Zd�Zd�Z	d	�Z
ejfd
�Z
dd�Zd
�Zd�Zd�Z�xZS)�_ProactorBasePipeTransportz*Base class for pipe and socket transports.Ncs���t���||��|�|��||_|�|��||_d|_d|_d|_d|_	d|_
d|_d|_|j�|j�
��|j�|jj|��|�(|j�t$j|d��dSdS)NrF)�super�__init__�
_set_extra�_sock�set_protocol�_server�_buffer�	_read_fut�
_write_fut�_pending_write�
_conn_lost�_closing�_eof_writtenZ_attachr�	call_soon�	_protocolZconnection_maderZ_set_result_unless_cancelled��self�loopr�protocol�waiter�extra�server�	__class__�       �rrz#_ProactorBasePipeTransport.__init__2s����
�������%�%�%����������
����(�#�#�#���������������������
�!����<�	#��L� � �"�"�"��
���T�^�;�T�B�B�B��	/��J� � ��!E�!'��
/�
/�
/�
/�
/�	/�	/�cst�|jjg}|j�|�d��n|jr|�d��|j�/|�d|j�������|j�|�d|j����|j�|�d|j����|jr*|�dt|j������|j
r|�d��d�d	�|����S)
NZclosedZclosingzfd=zread=zwrite=zwrite_bufsize=zEOF writtenz<{}>z )
r0�__name__r�appendr%�filenor!r"r �lenr&ZformatZjoin)r*Zinforr�__repr__z#_ProactorBasePipeTransport.__repr__Hs3����'�(���:�	#��K�K��!�!�!�!�
�]�	#��K�K�	�"�"�"��:�	5��K�K�3�d�j�/�/�1�1�3�3�4�4�4��>�	4��K�K�2���2�2�3�3�3��?�	6��K�K�4���4�4�5�5�5��<�	>��K�K�<��T�\�):�):�<�<�=�=�=���	'��K�K�
�&�&�&��}�}�S�X�X�d�^�^�,�,�,r2cs�||jd<dS)NZpipe)r�r*rrrrz%_ProactorBasePipeTransport._set_extraZs��"���F���r2cs�||_dS�N�r()r*r,rrrz'_ProactorBasePipeTransport.set_protocol]s
��!����r2c��|jSr9r:�r*� r�get_protocolz'_ProactorBasePipeTransport.get_protocol`s
���~�r2cr;r9)r%r<r=r�
is_closingz%_ProactorBasePipeTransport.is_closingcs
���}�r2cs��|jrdSd|_|xjdz
c_|js'|j� |j�|jd��|j�"|j���d|_dSdS)NTr)	r%r$r r"rr'�_call_connection_lostr!�cancelr<r=r�closez _ProactorBasePipeTransport.closefs����=�	��F���
����1�����|�	C���	C��J� � ��!;�T�B�B�B��>�	"��N�!�!�#�#�#�!�D�N�N�N�	"�	"r2csv�|j�1|d|��t|���|j���dSdS)Nzunclosed transport )Zsource)rZResourceWarningrB)r*Z_warnrr�__del__z"_ProactorBasePipeTransport.__del__qsP���:�	��E�0��0�0�/�$�O�O�O�O��J��������	�	r2�Fatal error on pipe transportcs<�	t|t��r2|j���rt	jd||d���n$|j�||||jd���|�|��dS#|�|��wxYw)Nz%r: %sTr
)�message�	exceptionrr,)	�
isinstance�OSErrorrrr�debug�call_exception_handlerr(�_force_close)r*�excrE�   r�_fatal_errorz'_ProactorBasePipeTransport._fatal_errorvs���	#��#�w�'�'�	
��:�'�'�)�)�I��L��4��4�H�H�H�H���
�1�1�&�!$�!%� $��	3�3����
���c�"�"�"�"�"��D���c�"�"�"�"���s�A+B�Bcs��|j�P|j���s7|�|j�d��n|j�|��|jrdSd|_|xjdz
c_|jr |j���d|_|jr |j���d|_d|_	d|_
|j�|j
|��dS)NTrr)�
_empty_waiter�done�
set_resultZ
set_exceptionr%r$r"rAr!r#r rr'r@)r*rLrrrKz'_ProactorBasePipeTransport._force_close�s�����	6�$�2D�2I�2I�2K�2K�	6��
6��"�-�-�d�3�3�3�3��"�0�0��5�5�5��=�	��F���
����1�����?�	#��O�"�"�$�$�$�"�D�O��>�	"��N�!�!�#�#�#�!�D�N��������
���T�7��=�=�=�=�=r2cs��	|j�|��t|jd��rA|j���dkr$|j�tj��|j���d|_|j	}|�|�
��d|_	dSdS#t|jd��rA|j���dkr$|j�tj��|j���d|_|j	}|�|�
��d|_	wxYw)N�shutdown�����)r(Zconnection_lostZhasattrrr5rRrZ	SHUT_RDWRrBrZ_detach)r*rLr/rMrr@z0_ProactorBasePipeTransport._call_connection_lost�sL��	$��N�*�*�3�/�/�/��t�z�:�.�.�
6�4�:�3D�3D�3F�3F�"�3L�
6��
�#�#�F�$4�5�5�5��J�������D�J��\�F��
$���� � � �#�����
$�
$���t�z�:�.�.�
6�4�:�3D�3D�3F�3F�"�3L�
6��
�#�#�F�$4�5�5�5��J�������D�J��\�F��
$���� � � �#���#�#�#�#s�B:�:BEcsP�|j}|j�|t|j��z
}|Sr9)r#r r6)r*Zsizerr�get_write_buffer_sizez0_ProactorBasePipeTransport.get_write_buffer_size�s-���"���<�	&��C���%�%�%�D��r2�NNN)rD)r3�
__module__�__qualname__�__doc__rr7rrr>r?rB�warningsZwarnrCrNrKr@rT�
__classcell__�r0�@rrr.s��������4�4�48�$(�/�/�/�/�/�/�,-�-�-�$#�#�#�"�"�"�������	"�	"�	"�%�M�����

#�
#�
#�
#�>�>�>�($�$�$�"������r2rcsN��eZdZdZ		d�fd�	Zd�Zd�Zd�Zd�Zd	�Z	dd
�Z
�xZS)
�_ProactorReadPipeTransportzTransport for read pipes.N�cs���d|_d|_t���||||||��t	|��|_|j�|j��d|_dS)NrSTF)	�_pending_data_length�_pausedrr�	bytearray�_datarr'�
_loop_reading)	r*r+rr,r-r.r/Zbuffer_sizer0s	        �rrz#_ProactorReadPipeTransport.__init__�sg���$&��!����
������t�X�v�u�f�E�E�E��{�+�+��
��
���T�/�0�0�0�����r2cs"�|jo|jSr9)r`r%r<r=r�
is_readingz%_ProactorReadPipeTransport.is_reading�s���<��5��
�$5�5r2cs��|js|jrdSd|_|j���rt	jd|��dSdS)NTz%r pauses reading)r%r`rrrrIr<r=r�
pause_readingz(_ProactorReadPipeTransport.pause_reading�s\���=�	�D�L�	��F�����:���!�!�	4��L�,�d�3�3�3�3�3�	4�	4r2csf�|js|jsdSd|_|j� |j�|jd��|j}d|_|dkr.|j�|j|jd|�|��|j�	��rtjd|��dSdS)NFrSz%r resumes reading)r%r`r!rr'rcr_�_data_receivedrbrrrI)r*�lengthrr�resume_readingz)_ProactorReadPipeTransport.resume_reading�s����=�	���	��F�����>�	;��J� � ��!3�T�:�:�:��*��$&��!��B�;�	S�
�J� � ��!4�d�j��&��6I�6�R�R�R��:���!�!�	5��L�-�t�4�4�4�4�4�	5�	5r2csF�|j���rtjd|��	|j���}n?#ttf$r�t$r!}|�	|d��Yd}~dSd}~wwxYw|s|�
��dSdS)Nz%r received EOFz1Fatal error: protocol.eof_received() call failed.)rrrrIr(Zeof_received�
SystemExit�KeyboardInterrupt�
BaseExceptionrNrB)r*Z	keep_openrLrMr�
_eof_receivedz(_ProactorReadPipeTransport._eof_received�s����:���!�!�	2��L�*�D�1�1�1�	���3�3�5�5�I�I���-�.�	�	�	���	�	�	�����H�
J�
J�
J��F�F�F�F�F�����	����
�	��J�J�L�L�L�L�L�	�	s�A
�
B�%B�Bcs��|jr|jdksJ�||_dS|dkr|���dSt|jt
j��r\	tj|j|��dS#ttf$r�t$r!}|�|d��Yd}~dSd}~wwxYw|j�|��dS)NrSrz3Fatal error: protocol.buffer_updated() call failed.)
r`r_rlrGr(rZBufferedProtocolZ_feed_data_to_buffered_protorirjrkrNZ
data_received)r*�datargrL�    rrfz)_ProactorReadPipeTransport._data_received�s���<�	��,��2�2�2�2�(.�D�%��F��Q�;�	���� � � ��F��d�n�i�&@�A�A�	/�
��6�t�~�t�L�L�L�L�L��� 1�2�
�
�
�� �
�
�
��!�!�#�#1�2�2�2�����������	
����
�N�(�(��.�.�.�.�.s�A6�6B2�B-�-B2csZ�d}d}	|��|j|us|j�|jsJ�d|_|���rK|���}|dkr!	|dkr|�||��dSdS|jd|�}n|���|jr!	|dkr|�||��dSdS|js/|jj	�
|j|j��|_|js|j�|j
��n�#t$rW}|js|�|d��n/|j���rt#jdd���Yd}~nod}~wt&$r}|�|��Yd}~nHd}~wt*$r }|�|d��Yd}~n d}~wt,j$r|js�YnwxYw|dkr|�||��dSdS#|dkr|�||��wwxYw)NrSrz"Fatal read error on pipe transportz*Read error on pipe transport while closingTr
)r!r%rP�resultrfrbrAr`r�	_proactor�	recv_intor�add_done_callbackrcZConnectionAbortedErrorrNrrrI�ConnectionResetErrorrKrHr�CancelledError)r*�futrgrmrL�     rrcz(_ProactorReadPipeTransport._loop_readings�������-	2��
!��~��,�@���@�15��@�@�@�!%����8�8�:�:�
!� �Z�Z�\�\�F���{���D��{�
2��#�#�D�&�1�1�1�1�1�
2�
2�A �:�g�v�g�.�D�D��J�J�L�L�L��}�
��2��{�
2��#�#�D�&�1�1�1�1�1�
2�
2�)�<�
X�!%��!5�!?�!?��
�D�J�!W�!W����<�
E���0�0��1C�D�D�D���&�	,�	,�	,��=�
,��!�!�#�'K�L�L�L�L���%�%�'�'�
,���I�&*�,�,�,�,����������#�	#�	#�	#����c�"�"�"�"�"�"�"�"������	I�	I�	I����c�#G�H�H�H�H�H�H�H�H������(�	�	�	��=�
��
�
�	������{�
2��#�#�D�&�1�1�1�1�1�
2�
2��v��{�
2��#�#�D�&�1�1�1�1�
2���sm�AD �7+D �6D �9'H� 
G(�*A
E<�7H�<
G(�	F#�H�#
G(�0G�H�G(�%H�'G(�(H�H*)NNNr^r9)r3rVrWrXrrdrerhrlrfrcrZr[r\rr]r]�s��������#�#�48�6;�������6�6�6�4�4�4�&5�5�5�$��� /�/�/�202�02�02�02�02�02�02�02r2r]csR��eZdZdZdZ�fd�Zd�Zdd�Zd�Zd�Z	d	�Z
d
�Zd�Z�xZ
S)
�_ProactorBaseWritePipeTransportzTransport for write pipes.TcsH��t��j|i|��d|_dSr9)rrrO�r*ZargsZkwr0�   �rrz(_ProactorBaseWritePipeTransport.__init__Is-��������$�%�"�%�%�%�!����r2cs��t|tttf��s$t	dt|��j�����|jrtd���|j	�td���|sdS|j
r;|j
tjkrtjd��|xj
dz
c_
dS|j�.|j�J�|�t|�����dS|js*t|��|_|���dS|j�|��|���dS)Nz/data argument must be a bytes-like object, not zwrite_eof() already calledz(unable to write; sendfile is in progresszsocket.send() raised exception.r)rm)rG�bytesra�
memoryview�	TypeError�typer3r&�RuntimeErrorrOr$r�!LOG_THRESHOLD_FOR_CONNLOST_WRITESrrr"r �
_loop_writing�_maybe_pause_protocolZextend)r*rmrr�writez%_ProactorBaseWritePipeTransport.writeMsk���$��	�:� >�?�?�	.��-��D�z�z�*�-�-�.�.�
.���	=��;�<�<�<���	K��I�J�J�J��	��F��?�	���)�"M�M�
B���@�A�A�A��O�O�q� �O�O��F��?�	)��<�'�'�'����E�$�K�K��0�0�0�0�0���	)�$�T�?�?�D�L��&�&�(�(�(�(�(�
�L����%�%�%��&�&�(�(�(�(�(r2Ncs��	|�|j�	|jrdS||jusJ�d|_d|_|r|���|�|j}d|_|sg|jr |j�|jd��|jr$|j	�
tj��|�
��n�|jj�|j	|��|_|j���sU|jdksJ�t#|��|_|j�|j��|���n|j�|j��|j�#|j�|j�d��dSdSdS#t.$r }|�|��Yd}~dSd}~wt2$r!}|�|d��Yd}~dSd}~wwxYw)Nrz#Fatal write error on pipe transport)r"r%r#ror rr'r@r&rrRr�SHUT_WR�_maybe_resume_protocolrp�sendrPr6rrr�r�rOrQrsrKrHrN)r*�frmrLrnrr�z-_ProactorBaseWritePipeTransport._loop_writingssJ��&	J��
���
�T�]�
������'�'�'�'�"�D�O�"#�D���
����
�
�
��
$��|��#����
J��=�K��J�(�(��)C�T�J�J�J��$�8��J�'�'���7�7�7��+�+�-�-�-�-�"&�*�"6�";�";�D�J��"M�"M�����+�+�-�-�J��.�!�3�3�3�3�*-�d�)�)�D�'��O�5�5�d�6H�I�I�I��.�.�0�0�0�0��O�5�5�d�6H�I�I�I��!�
4�$�/�
4��"�-�-�d�3�3�3�3�3�
4�
4�
4�
4��#�	#�	#�	#����c�"�"�"�"�"�"�"�"�"������	J�	J�	J����c�#H�I�I�I�I�I�I�I�I�I�����	J���s)�F!�FF!�!
G4�+G�
G4�G/�/G4c��dS�NT�r<r=r�
can_write_eofz-_ProactorBaseWritePipeTransport.can_write_eof�����tr2cs.�|���dSr9)rBr<r=r�	write_eofz)_ProactorBaseWritePipeTransport.write_eof�s���
�
�����r2c�0�|�d��dSr9�rKr<r=r�abortz%_ProactorBaseWritePipeTransport.abort�������$�����r2cs��|j�td���|j���|_|j�|j�d��|jS)NzEmpty waiter is already set)rOr~rZ
create_futurer"rQr<r=r�_make_empty_waiterz2_ProactorBaseWritePipeTransport._make_empty_waiter�s\����	>��<�=�=�=�!�Z�5�5�7�7����?�	0���)�)�$�/�/�/��!�!r2cs�d|_dSr9)rOr<r=r�_reset_empty_waiterz3_ProactorBaseWritePipeTransport._reset_empty_waiter�s��!����r2�NN)r3rVrWrXZ_start_tls_compatiblerr�r�r�r�r�r�r�rZr[r\rrwrwCs��������$�$� ��"�"�"�"�"�$)�$)�$)�L'J�'J�'J�'J�R������ � � �"�"�"�"�"�"�"�"�"�"r2rwcs$��eZdZ�fd�Zd�Z�xZS)�_ProactorWritePipeTransportcs���t��j|i|��|jj�|jd��|_|j�|j��dS)Ni)	rrrrp�recvrr!rr�_pipe_closedrxryrrz$_ProactorWritePipeTransport.__init__�s\��������$�%�"�%�%�%���-�2�2�4�:�r�B�B�����(�(��):�;�;�;�;�;r2csH�|���rdS|���dksJ�|jr|j�J�dS||jusJ||jf���d|_|j�#|�t
����dS|���dS)Nr2)Z	cancelledror%r!r"rKZBrokenPipeErrorrB)r*rurrr�z(_ProactorWritePipeTransport._pipe_closed�s����=�=�?�?�	��F��z�z�|�|�s�"�"�"�"��=�	��>�)�)�)��F��d�n�$�;�;�s�D�N�&;�;�;�;�����?�	����o�/�/�0�0�0�0�0��J�J�L�L�L�L�Lr2)r3rVrWrr�rZr[r\rr�r��sG�������<�<�<�<�<�

�
�
�
�
�
�
r2r�csR��eZdZdZ		d
�fd�	Zd�Zd�Zd�Zdd�Zdd�Z	dd	�Z
�xZS)�_ProactorDatagramTransportiNcs���||_d|_d|_t���|||||���tj��|_|j�	|j
��dS)Nr)r-r.)�_addressrO�_buffer_sizerr�collectionsZdequer rr'rc)r*r+rr,�addressr-r.r0r1rrz#_ProactorDatagramTransport.__init__�sp�����
�!������	������t�X�f�E��J�J�J�#�(�*�*����
���T�/�0�0�0�0�0r2c�&�t||��dSr9�rr8rrrz%_ProactorDatagramTransport._set_extra�����$��%�%�%�%�%r2cr;r9)r�r<r=rrTz0_ProactorDatagramTransport.get_write_buffer_size�s��� � r2cr�r9r�r<r=rr�z _ProactorDatagramTransport.abort�r�r2csZ�t|tttf��st	dt|�����|sdS|j�"|d|jfvrtd|j�����|jrB|jr;|jtj
krtjd��|xjdz
c_dS|j
�t|��|f��|xjt!|��z
c_|j�|���|���dS)Nz,data argument must be bytes-like object (%r)z!Invalid address: must be None or z!socket.sendto() raised exception.r)rGrzrar{r|r}r�Z
ValueErrorr$rrrrr r4r�r6r"r�r�)r*rm�addrrMr�sendtoz!_ProactorDatagramTransport.sendto�sJ���$��	�:� >�?�?�	(��J� ��J�J�(�(�
(��	��F��=�	E��d�D�M�5J�)J�	E��C�D�M�C�C�E�E�
E��?�	�t�}�	���)�"M�M�
D���B�C�C�C��O�O�q� �O�O��F�	
����U�4�[�[�$�/�0�0�0����S��Y�Y�&����?�	!���� � � �	
�"�"�$�$�$�$�$r2cs0�	|jrdS||jusJ�d|_|r|���|jr|jr0|jr)|jr |j�|jd��dS|j�	��\}}|xj
t|��zc_
|j�+|jj�
|j|��|_n,|jj�|j||���|_|j�|j��|���dS#t&$r%}|j�|��Yd}~dSd}~wt,$r!}|�|d��Yd}~dSd}~wwxYw)N)r�z'Fatal write error on datagram transport)r$r"ror r�r%rr'r@Zpopleftr�r6rpr�rr�rrr�r�rHr(�error_receivedZ	ExceptionrN)r*rurmr�rLrvrr�z(_ProactorDatagramTransport._loop_writing�s���	*���
����$�/�)�)�)�)�"�D�O��
��
�
�����<�
�D�O�
��
�
��=�K��J�(�(��)C�T�J�J�J�����-�-�/�/�J�D�$�����T���*����}�
I�"&�*�"6�";�";�D�J�<@�#B�#B����#'�*�"6�"=�"=�d�j�>B�CG�#>�#I�#I���
�O�-�-�d�.@�A�A�A��'�'�)�)�)�)�)��
�	/�	/�	/��N�)�)�#�.�.�.�.�.�.�.�.�.������	N�	N�	N����c�#L�M�M�M�M�M�M�M�M�M�����	N���s0�D=�A$D=�1BD=�=
F�E'�'
F�4F�Fcs��d}	|jr"	|r|j�||��dSdS|j|us|j�|jsJ�d|_|�U|���}|jr$d}	|r|j�||��dSdS|j�
||j}}n|\}}|jr"	|r|j�||��dSdS|j�0|jj�	|j
|j��|_n/|jj�|j
|j��|_|j�|j�
|j��nI#t$r$}|j�|��Yd}~n d}~wt"j$r|js�YnwxYw|r|j�||��dSdS#|r|j�||��wwxYwr9)r$r(Zdatagram_receivedr!r%ror�rrpr�r�max_size�recvfromrrrcrHr�rrt)r*rurmr�ZresrL�      rrcz(_ProactorDatagramTransport._loop_readings�����'	=���
��H�
=���0�0��t�<�<�<�<�<�
=�
=�E�>�S�(�
<�T�^�
<�-1�]�
<�
<�
<�"�D�N��
%��j�j�l�l���=���D��0�
=���0�0��t�<�<�<�<�<�
=�
=�-�=�%�!$�d�m�$�D�D�!$�J�D�$���
�� �
=���0�0��t�<�<�<�<�<�
=�
=��}�
N�!%��!5�!:�!:�4�:�;?�=�"J�"J����"&��!5�!>�!>�t�z�?C�}�"N�"N����~�
E���0�0��1C�D�D�D����	/�	/�	/��N�)�)�#�.�.�.�.�.�.�.�.������(�	�	�	��=�
��
�
�	�����
=���0�0��t�<�<�<�<�<�
=�
=��t�
=���0�0��t�<�<�<�<�
=���sM�E�?E�E�
A&E�3'G�
F �$F�>G�F �G�F � G� G$rUr9)r3rVrWr�rrrTr�r�r�rcrZr[r\rr�r��s���������H�59�$(�1�1�1�1�1�1�&�&�&�!�!�!� � � �%�%�%�%�: *� *� *� *�D)=�)=�)=�)=�)=�)=�)=�)=r2r�cs�eZdZdZd�Zd�ZdS)�_ProactorDuplexPipeTransportzTransport for duplex pipes.cr�)NFr�r<r=rr�z*_ProactorDuplexPipeTransport.can_write_eofPs���ur2cs�t�r9)ZNotImplementedErrorr<r=rr�z&_ProactorDuplexPipeTransport.write_eofSs��!�!r2N)r3rVrWrXr�r�r�r2rr�r�Ks:������&�%����"�"�"�"�"r2r�csR��eZdZdZejjZ		d�fd�	Zd�Z	d�Z
d�Z�xZS)�_ProactorSocketTransportz Transport for connected sockets.Ncs|��t���||||||��tj|��dSr9)rrrZ_set_nodelayr)r1rrz!_ProactorSocketTransport.__init__^s<���
������t�X�v�u�f�E�E�E�� ��&�&�&�&�&r2cr�r9r�r8rrrz#_ProactorSocketTransport._set_extracr�r2cr�r�r�r<r=rr�z&_ProactorSocketTransport.can_write_eoffr�r2cs��|js|jrdSd|_|j�&|j�t
j��dSdSr�)r%r&r"rrRrr�r<r=rr�z"_ProactorSocketTransport.write_eofisU���=�	�D�-�	��F� ����?�	0��J�����/�/�/�/�/�	0�	0r2rU)
r3rVrWrXrZ
_SendfileModeZ
TRY_NATIVEZ_sendfile_compatiblerrr�r�rZr[r\rr�r�Ws��������+�*�$�2�=��48�$(�'�'�'�'�'�'�
&�&�&����0�0�0�0�0�0�0r2r�cs���eZdZ�fd�Z		d d�Z	d!ddddddd�d�Z	d d�Z		d"d�Z		d"d	�Z		d"d
�Z	�fd�Z
d�Zd
�Zd�Z
d#d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd!d�Zd�Z			d$d�Zd�Zd�Zd�Z�xZS)%rcs���t�����tjd|jj��||_||_d|_i|_	|�
|��|���tj
��tj��ur-tj|j�����dSdS)NzUsing proactor: %s)rrrrIr0r3rp�	_selector�_self_reading_future�_accept_futuresZset_loop�_make_self_pipe�	threading�current_thread�main_thread�signal�
set_wakeup_fd�_csockr5)r*Zproactorr0s  �rrzBaseProactorEventLoop.__init__ss����
����������)�8�+=�+F�G�G�G�!���!���$(��!�!������$�����������#�%�%��)>�)@�)@�@�	7�� ���!3�!3�!5�!5�6�6�6�6�6�	7�	7r2Nc�*�t||||||��Sr9)r�)r*rr,r-r.r/r�r�_make_socket_transportz,BaseProactorEventLoop._make_socket_transport�s!��'��d�H�f�(-�v�7�7�	7r2F)�server_side�server_hostnamer.r/�ssl_handshake_timeout�ssl_shutdown_timeoutc
sp�tj|||||||	|
���}t|||||���|jS)N)r�r��r.r/)rZSSLProtocolr�Z_app_transport)r*Zrawsockr,�
sslcontextr-r�r�r.r/r�r�Zssl_protocols            r�_make_ssl_transportz)BaseProactorEventLoop._make_ssl_transport�s\�� �+��h�
�F��_�&;�%9�	;�;�;��
	!��w��',�V�	=�	=�	=�	=��*�*r2cr�r9)r�)r*rr,r�r-r.r�r�_make_datagram_transportz.BaseProactorEventLoop._make_datagram_transport�s!��)�$��h��*0�%�9�9�	9r2c�(�t|||||��Sr9)r��r*rr,r-r.rvr�_make_duplex_pipe_transportz1BaseProactorEventLoop._make_duplex_pipe_transport�s"��+�D�,0�(�F�E�K�K�	Kr2cr�r9)r]r�rvr�_make_read_pipe_transportz/BaseProactorEventLoop._make_read_pipe_transport�s��)�$��h���N�N�Nr2cr�r9)r�r�rvr�_make_write_pipe_transportz0BaseProactorEventLoop._make_write_pipe_transport�s$��+�4�+/��6�5�J�J�	Jr2cs���|���rtd���|���rdStj��tj��urt
jd��|���|�	��|j
���d|_
d|_t�����dS)Nz!Cannot close a running event looprS)Z
is_runningr~�	is_closedr�r�r�r�r��_stop_accept_futures�_close_self_piperprBr�r)r*r0s �rrBzBaseProactorEventLoop.close�s�����?�?���	D��B�C�C�C��>�>���	��F��#�%�%��)>�)@�)@�@�	%�� ��$�$�$�	
�!�!�#�#�#��������������������	���
�
�����r2c��HK�|j�||���d{V��Sr9)rpr�)r*rZnrMr�	sock_recvzBaseProactorEventLoop.sock_recv�s0�����^�(�(��q�1�1�1�1�1�1�1�1�1r2c�r�r9)rprq)r*r�bufrMr�sock_recv_intoz$BaseProactorEventLoop.sock_recv_into�s0�����^�-�-�d�C�8�8�8�8�8�8�8�8�8r2c�r�r9)rpr�)r*rZbufsizerMr�
sock_recvfromz#BaseProactorEventLoop.sock_recvfrom�s0�����^�,�,�T�7�;�;�;�;�;�;�;�;�;r2rc�slK�|st|��}|j�|||���d{V��Sr9)r6rpZ
recvfrom_into)r*rr�Znbytesrnr�sock_recvfrom_intoz(BaseProactorEventLoop.sock_recvfrom_into�sE�����	���X�X�F��^�1�1�$��V�D�D�D�D�D�D�D�D�Dr2c�r�r9)rpr�)r*rrmrMr�sock_sendallz"BaseProactorEventLoop.sock_sendall�s0�����^�(�(��t�4�4�4�4�4�4�4�4�4r2c�sLK�|j�||d|���d{V��S)Nr)rpr�)r*rrmr�rnr�sock_sendtoz!BaseProactorEventLoop.sock_sendto�s4�����^�*�*�4��q�'�B�B�B�B�B�B�B�B�Br2c�r�r9)rpZconnect)r*rr�rMr�sock_connectz"BaseProactorEventLoop.sock_connect�s0�����^�+�+�D�'�:�:�:�:�:�:�:�:�:r2c�sFK�|j�|���d{V��Sr9)rp�acceptr8rr�sock_acceptz!BaseProactorEventLoop.sock_accept�s.�����^�*�*�4�0�0�0�0�0�0�0�0�0r2c�s�K�	|���}n2#ttjf$r}t	jd���d}~wwxYw	t
j|��j}n"#t$rt	jd���wxYw|r|n|}|sdSt|d��}|rt||z|��n|}	t||��}d}
		t|	|z
|��}|dkr|
|
dkr|�|��SS|j�
||||���d{V��||z
}|
|z
}
�e#|
dkr|�|��wwxYw)Nznot a regular filerl��)r5ZAttributeError�ioZUnsupportedOperationrZSendfileNotAvailableError�osZfstatZst_sizerHZminZseekrpZsendfile)r*r�file�offset�countr5ZerrZfsizeZ	blocksizeZend_posZ
total_sents           r�_sock_sendfile_nativez+BaseProactorEventLoop._sock_sendfile_native�s�����	M��[�[�]�]�F�F���� 7�8�	M�	M�	M��6�7K�L�L�L�����	M����	M��H�V�$�$�,�E�E���	M�	M�	M��6�7K�L�L�L�	M����"�-�E�E��	��	��1��	�;�/�/�	�05�@�#�f�u�n�e�,�,�,�5���V�U�#�#���
�
	"�
(���&� 0�)�<�<�	���>�&�%�
�A�~�
"��	�	�&�!�!�!�!�
"�	�n�-�-�d�D�&�)�L�L�L�L�L�L�L�L�L��)�#���i�'�
�

(���A�~�
"��	�	�&�!�!�!�!�
"���s2��A�A�A�A&�&B�D2�.D2�2Ec�s�K�|���}|���|����d{V��	|�|j|||d����d{V��	|���|r|���SS#|���|r|���wwxYw)NF)Zfallback)rdrer�Z
sock_sendfilerr�rh)r*Ztranspr�r�r�rhr�r�_sendfile_nativez&BaseProactorEventLoop._sendfile_native�s
�����*�*�,�,���������'�'�)�)�)�)�)�)�)�)�)�	(��+�+�F�L�$���5:�,�<�<�<�<�<�<�<�<�
<�
�&�&�(�(�(��
(��%�%�'�'�'�'�
(��
�&�&�(�(�(��
(��%�%�'�'�'�'�
(���s�$B�-Ccs��|j� |j���d|_|j���d|_|j���d|_|xjdzc_dS)Nr)r�rA�_ssockrBr��
_internal_fdsr<r=rr�z&BaseProactorEventLoop._close_self_pipesz���$�	-��%�,�,�.�.�.�(,�D�%������������������������a�����r2cs��tj��\|_|_|j�d��|j�d��|xjdz
c_dS)NFr)rZ
socketpairr�r�Zsetblockingr�r<r=rr�z%BaseProactorEventLoop._make_self_pipe
s_��#)�#4�#6�#6� ���T�[������&�&�&������&�&�&����a�����r2csr�	|�|���|j|urdS|j�|jd��}||_|�|j��dS#tj$rYdSttf$r�t$r$}|�d||d���Yd}~dSd}~wwxYw)Niz.Error on reading from the event loop self pipe)rErFr+)
ror�rpr�r�rr�_loop_self_readingrrtrirjrkrJ)r*r�rLrMrr�z(BaseProactorEventLoop._loop_self_readings��	9��
����
�
�
��(��1�
�����#�#�D�K��6�6�A�)*�D�%�
���� 7�8�8�8�8�8���(�	�	�	��F�F��-�.�	�	�	���	�	�	��'�'�K� ��)�)�
�
�
�
�
�
�
�
�
�����	���s"�A&� A&�&B6�8B6�B1�1B6cs��|j}|�dS	|�d��dS#t$r$|jrt	jdd���YdSYdSwxYw)Nsz3Fail to write a null byte into the self-pipe socketTr
)r�r�rH�_debugrrI)r*Zcsockrr�_write_to_selfz$BaseProactorEventLoop._write_to_self-s�������	��F�	,��J�J�u��������	,�	,�	,��{�
,���0�&*�,�,�,�,�,�,�,�
,�
,�
,�	,���s�$�'A�A�dc	sZ���������d��������fd�	������dS)Nc
sF��	|�||���\}}�jrtjd�||�����}�� ��||�dd|i��
����n��||d|i��������rdS�j��	��}|�j	�	�
��<|����dS#t$r�}�	�
��dkr@��
d|tj�	��d����	���n*�jrtjd	�	d�
��Yd}~dSYd}~dSYd}~dSd}~wt"j$r�	���YdSwxYw)Nz#%r got a new connection from %r: %rTr)r�r.r/r�r�r�rSzAccept failed on a socket)rErFrzAccept failed on socket %rr
)ror�rrIr�r�r�rpr�r�r5rrrHrJr
rrBrrt)
r�Zconnr�r,rLr+�protocol_factoryr*r/rr�r�r�s
     ��������rr+z2BaseProactorEventLoop._start_serving.<locals>.loopDsM���#
*��E�!"�����J�D�$��{�9���%J�%+�T�4�9�9�9�/�/�1�1�H�!�	E��0�0� �(�J�D�#-�t�"4�V�2G�1E�	1�G�G�G�G��3�3� �(�#-�t�"4�V�4�E�E�E��>�>�#�#���F��N�)�)�$�/�/��78��$�T�[�[�]�]�3��#�#�D�)�)�)�)�)���

6�

6�

6��;�;�=�=�B�&�	6��/�/�#>�%(�"(�"8��">�">�1�1����
�J�J�L�L�L�L��[�6��L�!=�!%��6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�6�!�L�L�L�L�L������,�
�
�
��
�
�������
���s%�BC$�C$�$
F �.A6E6�6&F �F r9)r')	r*r�rr�r/Zbacklogr�r�r+s	````` ``@r�_start_servingz$BaseProactorEventLoop._start_serving?sf����������
$	*�$	*�$	*�$	*�$	*�$	*�$	*�$	*�$	*�$	*�$	*�$	*�$	*�L	
���t�����r2cs�dSr9r�)r*Z
event_listrr�_process_eventsz%BaseProactorEventLoop._process_eventsls���r2cs��|j���D]}|����|j���dSr9)r�ZvaluesrAZclear)r*�futurerrr�z*BaseProactorEventLoop._stop_accept_futurespsJ���*�1�1�3�3�	�	�F��M�M�O�O�O�O���"�"�$�$�$�$�$r2cs��|j�|���d��}|r|���|j�|��|���dSr9)r�Zpopr5rArp�
_stop_servingrB)r*rr�rMrr�z#BaseProactorEventLoop._stop_servingus^���%�)�)�$�+�+�-�-��>�>���	��M�M�O�O�O���$�$�T�*�*�*��
�
�����r2rUr9r�)r)NNr�NN)r3rVrWrr�r�r�r�r�r�rBr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rZr[r\rrrqsS�������7�7�7�7�7�=A�26�7�7�7�7�9=�
+� �$��t�"&�!%�
+�
+�
+�
+�
+� CG�9�9�9�9�
BF�*.�K�K�K�K�
@D�(,�O�O�O�O�AE�)-�J�J�J�J������(2�2�2�9�9�9�<�<�<�E�E�E�E�5�5�5�C�C�C�;�;�;�1�1�1�"�"�"�:
(�
(�
(� � � � � � �9�9�9�9�8,�,�,�&>A�-1�,0�+�+�+�+�Z
�
�
�%�%�%�
������r2r)$rXZ__all__r�r�rrYr�r�r�Zrrrrrrr	r
ZlogrrZ_FlowControlMixinZ
BaseTransportrZ
ReadTransportr]ZWriteTransportrwr�ZDatagramTransportr�Z	Transportr�r�Z
BaseEventLooprr�r2r�<module>r�s�����#��	�	�	�	�	�	�	�	�
�
�
�
�����
�
�
�
���������������������������������������������������������������0�0�0�$@�@�@�@�@��!=�!+�!9�@�@�@�FO2�O2�O2�O2�O2�!;�!+�!9�O2�O2�O2�dk"�k"�k"�k"�k"�&@�&0�&?�k"�k"�k"�\�����"A����,A=�A=�A=�A=�A=�!;�!+�!=�A=�A=�A=�H	"�	"�	"�	"�	"�#=�#B�#-�#7�	"�	"�	"�0�0�0�0�0�9�>�)�3�0�0�0�4I�I�I�I�I�K�5�I�I�I�I�Ir2