OwlCyberSecurity - MANAGER
Edit File: windows_events.cpython-38.pyc
U ����i�f������������������������@���s���d�Z�ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl mZ�ddl mZ�ddl m Z �ddl mZ�ddl mZ�dd l mZ�dd l mZ�ddl mZ�ddlmZ�d ZdZdZdZdZdZdZG�dd��de j�ZG�dd��de j�ZG�dd��de�ZG�dd��de�Z G�dd��de!�Z"G�dd��dej#�Z$G�dd ��d ej%�Z&G�d!d"��d"�Z'G�d#d$��d$ej(�Z)e$Z*G�d%d&��d&ej+�Z,G�d'd(��d(ej+�Z-e-Z.dS�))z.Selector and proactor event loops for Windows.�����N����)�events)�base_subprocess)�futures)� exceptions)�proactor_events)�selector_events)�tasks)� windows_utils)�logger)�SelectorEventLoop�ProactorEventLoop�IocpProactor�DefaultEventLoopPolicy�WindowsSelectorEventLoopPolicy�WindowsProactorEventLoopPolicy�������i���i���g����MbP?g�������?c�����������������������s^���e�Zd�ZdZdd���fdd� Z��fdd�Zdd ��Z��fd d�Z��fdd �Z��fdd�Z ���Z S�)�_OverlappedFuturez�Subclass of Future which represents an overlapped operation. Cancelling it will immediately cancel the overlapped operation. N��loopc�������������������s&���t���j|d��|�jr|�jd=�||�_d�S��Nr������)�super�__init__�_source_traceback�_ov)�self�ovr����� __class__���;/opt/alt/python38/lib64/python3.8/asyncio/windows_events.pyr���1���s����z_OverlappedFuture.__init__c��������������������sH���t������}|�jd�k rD|�jjr dnd}|�dd|��d|�jjd�d���|S�)N�pendingZ completedr���zoverlapped=<z, �#x�>)r���� _repr_infor���r"����insert�address�r����info�stater���r ���r!���r%���7���s ���� z_OverlappedFuture._repr_infoc�������������� ���C���sr���|�j�d�krd�S�z|�j�����W�nJ�tk rf�}�z,d||�d�}|�jrJ|�j|d<�|�j�|��W�5�d�}~X�Y�nX�d�|�_�d�S�)Nz&Cancelling an overlapped future failed��message� exception�future�source_traceback)r����cancel�OSErrorr����_loop�call_exception_handler)r����exc�contextr ���r ���r!����_cancel_overlapped>���s���� � z$_OverlappedFuture._cancel_overlappedc��������������������s���|������t�����S��N)r6���r���r0����r���r���r ���r!���r0���N���s����z_OverlappedFuture.cancelc��������������������s���t����|��|�����d�S�r7���)r���� set_exceptionr6����r���r-���r���r ���r!���r9���R���s����z_OverlappedFuture.set_exceptionc��������������������s���t����|��d�|�_d�S�r7���)r���� set_resultr����r����resultr���r ���r!���r;���V���s����z_OverlappedFuture.set_result)�__name__� __module__�__qualname__�__doc__r���r%���r6���r0���r9���r;���� __classcell__r ���r ���r���r!���r���+���s���r���c�����������������������sn���e�Zd�ZdZdd���fdd� Zdd��Z��fdd �Zd d��Zdd ��Z��fdd�Z ��fdd�Z ��fdd�Z���ZS�)�_BaseWaitHandleFuturez2Subclass of Future which represents a wait handle.Nr���c�������������������s8���t���j|d��|�jr|�jd=�||�_||�_||�_d|�_d�S�)Nr���r���T)r���r���r���r����_handle�_wait_handle�_registered)r���r����handle�wait_handler���r���r ���r!���r���^���s����z_BaseWaitHandleFuture.__init__c�����������������C���s���t��|�jd�t�jkS��Nr���)�_winapiZWaitForSingleObjectrD���Z WAIT_OBJECT_0r8���r ���r ���r!����_polll���s�����z_BaseWaitHandleFuture._pollc��������������������sd���t������}|�d|�jd����|�jd�k rB|����r4dnd}|�|��|�jd�k r`|�d|�jd����|S�)Nzhandle=r#���ZsignaledZwaitingzwait_handle=)r���r%����appendrD���rK���rE���r(���r���r ���r!���r%���q���s���� z _BaseWaitHandleFuture._repr_infoc�����������������C���s ���d�|�_�d�S�r7���)r����r����futr ���r ���r!����_unregister_wait_cb{���s����z)_BaseWaitHandleFuture._unregister_wait_cbc�������������� ���C���s����|�j�s d�S�d|�_�|�j}d�|�_zt�|��W�n`�tk r��}�zB|jtjkrzd||�d�}|�jrd|�j|d<�|�j� |��W�Y��d�S�W�5�d�}~X�Y�nX�|�� d���d�S��NFz$Failed to unregister the wait handler+���r/���)rF���rE����_overlappedZUnregisterWaitr1����winerror�ERROR_IO_PENDINGr���r2���r3���rO����r���rH���r4���r5���r ���r ���r!����_unregister_wait����s$����� z&_BaseWaitHandleFuture._unregister_waitc��������������������s���|������t�����S�r7���)rU���r���r0���r8���r���r ���r!���r0�������s����z_BaseWaitHandleFuture.cancelc��������������������s���|������t���|��d�S�r7���)rU���r���r9���r:���r���r ���r!���r9�������s����z#_BaseWaitHandleFuture.set_exceptionc��������������������s���|������t���|��d�S�r7���)rU���r���r;���r<���r���r ���r!���r;�������s����z _BaseWaitHandleFuture.set_result) r>���r?���r@���rA���r���rK���r%���rO���rU���r0���r9���r;���rB���r ���r ���r���r!���rC���[���s��� rC���c�����������������������sF���e�Zd�ZdZdd���fdd� Zdd��Z��fdd �Z��fd d�Z���ZS�)�_WaitCancelFuturezoSubclass of Future which represents a wait for the cancellation of a _WaitHandleFuture using an event. Nr���c�������������������s���t���j||||d��d�|�_d�S�)Nr���)r���r����_done_callback)r���r����eventrH���r���r���r ���r!���r�������s����z_WaitCancelFuture.__init__c�����������������C���s���t�d��d�S�)Nz'_WaitCancelFuture must not be cancelled)�RuntimeErrorr8���r ���r ���r!���r0�������s����z_WaitCancelFuture.cancelc��������������������s$���t����|��|�jd�k r |��|���d�S�r7���)r���r;���rW���r<���r���r ���r!���r;�������s���� z_WaitCancelFuture.set_resultc��������������������s$���t����|��|�jd�k r |��|���d�S�r7���)r���r9���rW���r:���r���r ���r!���r9�������s���� z_WaitCancelFuture.set_exception) r>���r?���r@���rA���r���r0���r;���r9���rB���r ���r ���r���r!���rV�������s ���rV���c�����������������������s6���e�Zd�Zdd���fdd� Z��fdd�Zdd��Z���ZS�) �_WaitHandleFutureNr���c�������������������s<���t���j||||d��||�_d|�_t�d�ddd��|�_d�|�_d�S�)Nr���TF)r���r���� _proactorZ_unregister_proactorrQ���ZCreateEvent�_event� _event_fut)r���r���rG���rH����proactorr���r���r ���r!���r�������s ����z_WaitHandleFuture.__init__c��������������������sF���|�j�d�k r"t�|�j���d�|�_�d�|�_|�j�|�j��d�|�_t���|��d�S�r7���) r\���rJ����CloseHandler]���r[����_unregisterr���r���rO���rM���r���r ���r!���rO�������s���� z%_WaitHandleFuture._unregister_wait_cbc�������������� ���C���s����|�j�s d�S�d|�_�|�j}d�|�_zt�||�j��W�n`�tk r��}�zB|jtjkr~d||�d�}|�jrh|�j|d<�|�j � |��W�Y��d�S�W�5�d�}~X�Y�nX�|�j�|�j|�j �|�_d�S�rP���)rF���rE���rQ���ZUnregisterWaitExr\���r1���rR���rS���r���r2���r3���r[����_wait_cancelrO���r]���rT���r ���r ���r!���rU�������s(����� �z"_WaitHandleFuture._unregister_wait)r>���r?���r@���r���rO���rU���rB���r ���r ���r���r!���rZ�������s���rZ���c�������������������@���s<���e�Zd�ZdZdd��Zdd��Zdd��Zdd ��Zd d��ZeZ dS�) � PipeServerzXClass representing a pipe server. This is much like a bound, listening socket. c�����������������C���s,���||�_�t���|�_d�|�_d�|�_|��d�|�_d�S��NT)�_address�weakref�WeakSet�_free_instances�_pipe�_accept_pipe_future�_server_pipe_handle)r���r'���r ���r ���r!���r�������s ���� zPipeServer.__init__c�����������������C���s���|�j�|��d��}|�_�|S�)NF)rh���rj���)r����tmpr ���r ���r!����_get_unconnected_pipe���s����z PipeServer._get_unconnected_pipec�������������� ���C���sr���|�����rd�S�tjtjB�}|r&|tjO�}t�|�j|tjtjB�tj B�tj tjtjtj tj�}t�|�}|�j�|��|S�r7���)�closedrJ���ZPIPE_ACCESS_DUPLEXZFILE_FLAG_OVERLAPPEDZFILE_FLAG_FIRST_PIPE_INSTANCEZCreateNamedPiperd���ZPIPE_TYPE_MESSAGEZPIPE_READMODE_MESSAGEZ PIPE_WAITZPIPE_UNLIMITED_INSTANCESr ���ZBUFSIZEZNMPWAIT_WAIT_FOREVER�NULL� PipeHandlerg����add)r����first�flags�h�piper ���r ���r!���rj�����s(���� � ���� zPipeServer._server_pipe_handlec�����������������C���s ���|�j�d�kS�r7���)rd���r8���r ���r ���r!���rm�����s����zPipeServer.closedc�����������������C���sR���|�j�d�k r|�j�����d�|�_�|�jd�k rN|�jD�]}|����q*d�|�_d�|�_|�j����d�S�r7���)ri���r0���rd���rg����closerh����clear)r���rt���r ���r ���r!���ru�����s���� zPipeServer.closeN) r>���r?���r@���rA���r���rl���rj���rm���ru����__del__r ���r ���r ���r!���rb�������s��� rb���c�������������������@���s���e�Zd�ZdZdS�)�_WindowsSelectorEventLoopz'Windows version of selector event loop.N)r>���r?���r@���rA���r ���r ���r ���r!���rx���,��s���rx���c�����������������������sH���e�Zd�ZdZd ��fdd� Z��fdd�Zdd��Zd d ��Zddd�Z���Z S�)r ���z2Windows version of proactor event loop using IOCP.Nc��������������������s���|d�krt���}t���|��d�S�r7���)r���r���r���)r���r^���r���r ���r!���r���3��s����zProactorEventLoop.__init__c�������������� ������sl���z(|�j�d�kst�|��|�j��t ��� ���W�5�|�j�d�k rf|�j�j}|�j�����|d�k r`|js`|�j�|��d�|�_�X�d�S�r7���)Z_self_reading_futurer���r0���r"���r[���r`����AssertionError� call_soonZ_loop_self_readingr����run_forever�r���r���r���r ���r!���r{���8��s���� zProactorEventLoop.run_foreverc���������������������s8���|�j��|�}|I�d�H�}|��}|�j||d|id�}||fS�)N�addr��extra)r[����connect_pipe�_make_duplex_pipe_transport)r����protocol_factoryr'����frt����protocol�transr ���r ���r!����create_pipe_connectionK��s���� �z(ProactorEventLoop.create_pipe_connectionc���������������������s.���t�����d������fdd� �������gS�)Nc�������������� ������s��d�}zn|�rN|�����}�j�|������r4|����W�d�S����}�j||d��id������}|d�krdW�d�S��j�|�}�W�n��t k r��}�zF|r�|� ��dkr���d||d���|����n�jr�t jd|dd��W�5�d�}~X�Y�n2�tjk r����|r�|����Y�nX�|��_|�����d�S�) Nr}���r~���r���zPipe accept failed)r,���r-���rt���zAccept pipe failed on pipe %rT)�exc_info)r=���rg����discardrm���ru���r����rl���r[����accept_piper1����filenor3���Z_debugr���Zwarningr����CancelledErrorri����add_done_callback)r����rt���r����r4����r'����loop_accept_piper����r���Zserverr ���r!���r����V��sH�������� ��z>ProactorEventLoop.start_serving_pipe.<locals>.loop_accept_pipe)N)rb���rz���)r���r����r'���r ���r����r!����start_serving_pipeS��s����( z$ProactorEventLoop.start_serving_pipec �������������� �������s����|�����} t|�|||||||f| |d�| ��}z| I�d�H��W�nD�ttfk rT�����Y�n,�tk r~���|����|���I�d�H����Y�nX�|S�)N)�waiterr���)� create_future�_WindowsSubprocessTransport� SystemExit�KeyboardInterrupt� BaseExceptionru���Z_wait)r���r�����args�shell�stdin�stdout�stderr�bufsizer����kwargsr����Ztranspr ���r ���r!����_make_subprocess_transport���s*���� �������z,ProactorEventLoop._make_subprocess_transport)N)N) r>���r?���r@���rA���r���r{���r����r����r����rB���r ���r ���r���r!���r ���0��s���0��r ���c�������������������@���s����e�Zd�ZdZd;dd�Zdd��Zdd��Zd d ��Zd<dd �Zdd��Z d=dd�Z d>dd�Zd?dd�Zd@dd�Z dAdd�Zdd��Zdd��Zdd ��Zd!d"��Zd#d$��ZdBd%d&�Zd'd(��Zd)d*��Zd+d,��Zd-d.��Zd/d0��Zd1d2��ZdCd3d4�Zd5d6��Zd7d8��Zd9d:��ZdS�)Dr���z#Proactor implementation using IOCP.r���c�����������������C���sD���d�|�_�g�|�_t�tjtd|�|�_i�|�_t� ��|�_ g�|�_t� ��|�_d�S�rI���) r2����_resultsrQ����CreateIoCompletionPort�INVALID_HANDLE_VALUErn����_iocp�_cachere���rf���rF���� _unregistered�_stopped_serving)r���Zconcurrencyr ���r ���r!���r������s�������� zIocpProactor.__init__c�����������������C���s���|�j�d�krtd��d�S�)NzIocpProactor is closed)r����rY���r8���r ���r ���r!���� _check_closed���s���� zIocpProactor._check_closedc�����������������C���sF���dt�|�j��dt�|�j��g}|�jd�kr0|�d��d|�jjd�|�f�S�)Nzoverlapped#=%sz result#=%srm���z<%s %s>� )�lenr����r����r����rL���r���r>����join)r���r)���r ���r ���r!����__repr__���s����� zIocpProactor.__repr__c�����������������C���s ���||�_�d�S�r7���)r2���)r���r���r ���r ���r!����set_loop���s����zIocpProactor.set_loopNc�����������������C���s ���|�j�s|��|��|�j�}g�|�_�|S�r7���)r����rK���)r����timeoutrk���r ���r ���r!����select���s ���� zIocpProactor.selectc�����������������C���s���|�j����}|�|��|S�r7���)r2���r����r;���)r����valuerN���r ���r ���r!����_result���s���� zIocpProactor._resultr���c�����������������C���s~���|���|��t�t�}z4t|tj�r6|�|���||��n|�|���|��W�n�t k rf���|�� d��Y�S�X�dd��}|��|||�S�)N�����c�������������� ���S���sR���z |����W�S��tk rL�}�z$|jtjtjfkr:t|j���n��W�5�d�}~X�Y�nX�d�S�r7����� getresultr1���rR���rQ���ZERROR_NETNAME_DELETEDZERROR_OPERATION_ABORTED�ConnectionResetErrorr�����r�����keyr���r4���r ���r ���r!����finish_recv���s���� �z&IocpProactor.recv.<locals>.finish_recv)�_register_with_iocprQ���� Overlappedrn���� isinstance�socketZWSARecvr����ZReadFile�BrokenPipeErrorr����� _register�r����conn�nbytesrr���r���r����r ���r ���r!����recv���s���� zIocpProactor.recvc�����������������C���s~���|���|��t�t�}z4t|tj�r6|�|���||��n|�|���|��W�n�t k rf���|�� d��Y�S�X�dd��}|��|||�S�)Nr���c�������������� ���S���sR���z |����W�S��tk rL�}�z$|jtjtjfkr:t|j���n��W�5�d�}~X�Y�nX�d�S�r7���r����r����r ���r ���r!���r�������s���� �z+IocpProactor.recv_into.<locals>.finish_recv)r����rQ���r����rn���r����r����ZWSARecvIntor����ZReadFileIntor����r����r����)r���r�����bufrr���r���r����r ���r ���r!���� recv_into���s���� zIocpProactor.recv_intoc�����������������C���s`���|���|��t�t�}z|�|���||��W�n�tk rH���|��d��Y�S�X�dd��}|��|||�S�)N)r����Nc�������������� ���S���sR���z |����W�S��tk rL�}�z$|jtjtjfkr:t|j���n��W�5�d�}~X�Y�nX�d�S�r7���r����r����r ���r ���r!���r�������s���� �z*IocpProactor.recvfrom.<locals>.finish_recv) r����rQ���r����rn���ZWSARecvFromr����r����r����r����r����r ���r ���r!����recvfrom���s���� zIocpProactor.recvfromc�����������������C���s>���|���|��t�t�}|�|���|||��dd��}|��|||�S�)Nc�������������� ���S���sR���z |����W�S��tk rL�}�z$|jtjtjfkr:t|j���n��W�5�d�}~X�Y�nX�d�S�r7���r����r����r ���r ���r!����finish_send��s���� �z(IocpProactor.sendto.<locals>.finish_send)r����rQ���r����rn���Z WSASendTor����r����)r���r����r����rr���r}���r���r����r ���r ���r!����sendto���s ���� zIocpProactor.sendtoc�����������������C���sZ���|���|��t�t�}t|tj�r4|�|���||��n|�|���|��dd��}|�� |||�S�)Nc�������������� ���S���sR���z |����W�S��tk rL�}�z$|jtjtjfkr:t|j���n��W�5�d�}~X�Y�nX�d�S�r7���r����r����r ���r ���r!���r������s���� �z&IocpProactor.send.<locals>.finish_send) r����rQ���r����rn���r����r����ZWSASendr����Z WriteFiler����)r���r����r����rr���r���r����r ���r ���r!����send��s���� zIocpProactor.sendc��������������������sv���|������|���j���t�t�}|���������������fdd�}dd��}|��|�|�}||���}t j ||�jd��|S�)Nc��������������������sD���|�����t�d�����}���tjtj|����� �� �����������fS�)Nz@P)r�����structZpackr����� setsockoptr����� SOL_SOCKETrQ���ZSO_UPDATE_ACCEPT_CONTEXT� settimeoutZ gettimeoutZgetpeername)r����r����r���r�����r�����listenerr ���r!���� finish_accept*��s������z*IocpProactor.accept.<locals>.finish_acceptc���������������������s4���z|�I�d�H��W�n �t�jk r.���|������Y�nX�d�S�r7���)r���r����ru���)r.���r����r ���r ���r!����accept_coro3��s ����z(IocpProactor.accept.<locals>.accept_coror���)r�����_get_accept_socket�familyrQ���r����rn���ZAcceptExr����r����r ���Z ensure_futurer2���)r���r����r���r����r����r.����coror ���r����r!����accept$��s���� zIocpProactor.acceptc�������������� ������s������j�tjkr4t������|��|�j���}|�d���|S�|�� ����zt� �������j��W�nB�tk r��}�z$|j tjkrt�������d�dkr���W�5�d�}~X�Y�nX�t�t�}|������|����fdd�}|��|��|�S�)Nr���r���c��������������������s���|��������tjtjd����S�rI���)r����r����r����r����rQ���ZSO_UPDATE_CONNECT_CONTEXT�r����r����r����r����r ���r!����finish_connectV��s������z,IocpProactor.connect.<locals>.finish_connect)�typer����Z SOCK_DGRAMrQ���Z WSAConnectr����r2���r����r;���r����Z BindLocalr����r1���rR����errnoZ WSAEINVALZgetsocknamer����rn���Z ConnectExr����)r���r����r'���rN����er���r����r ���r����r!����connect@��s"���� zIocpProactor.connectc����������� ��� ���C���sb���|���|��t�t�}|d@�}|d?�d@�}|�|���t�|����|||dd��dd��}|��|||�S�)Nr���� ���r���c�������������� ���S���sR���z |����W�S��tk rL�}�z$|jtjtjfkr:t|j���n��W�5�d�}~X�Y�nX�d�S�r7���r����r����r ���r ���r!����finish_sendfilei��s���� �z.IocpProactor.sendfile.<locals>.finish_sendfile) r����rQ���r����rn���ZTransmitFiler�����msvcrtZ get_osfhandler����) r���Zsock�file�offset�countr���Z offset_lowZoffset_highr����r ���r ���r!����sendfile_��s���� ���� zIocpProactor.sendfilec��������������������sJ���|�������t�t�}|�������}|r0|�����S���fdd�}|��|��|�S�)Nc��������������������s���|�������S�r7���)r����r�����rt���r ���r!����finish_accept_pipe��s����z4IocpProactor.accept_pipe.<locals>.finish_accept_pipe)r����rQ���r����rn���ZConnectNamedPiper����r����r����)r���rt���r���Z connectedr����r ���r����r!���r����t��s���� zIocpProactor.accept_pipec�������������� �������sr���t�}zt�|�}W�qhW�n0�tk rF�}�z|jtjkr6��W�5�d�}~X�Y�nX�t|d�t�}t� |�I�d�H��qt �|�S�)N����)�CONNECT_PIPE_INIT_DELAYrQ���ZConnectPiper1���rR���ZERROR_PIPE_BUSY�min�CONNECT_PIPE_MAX_DELAYr ����sleepr ���ro���)r���r'���ZdelayrG���r4���r ���r ���r!���r�������s���� zIocpProactor.connect_pipec�����������������C���s���|���||d�S�)z�Wait for a handle. Return a Future object. The result of the future is True if the wait completed, or False if the wait did not complete (on timeout). F)�_wait_for_handle)r���rG���r����r ���r ���r!����wait_for_handle���s����zIocpProactor.wait_for_handlec�����������������C���s���|���|d�d�}||_|S�rc���)r����rW���)r���rX���Z done_callbackrN���r ���r ���r!���ra������s����zIocpProactor._wait_cancelc��������������������s����|������|d�krtj}nt�|d��}t�t�}t�||�j |j |�}|r\t||||�jd���nt ||||�|�jd�����jr~��jd=���fdd�}��|d|f|�j|j <���S�)N������@�@r���r���c��������������������s���������S�r7���)rK���r�����r����r ���r!����finish_wait_for_handle���s����z=IocpProactor._wait_for_handle.<locals>.finish_wait_for_handler���)r����rJ����INFINITE�math�ceilrQ���r����rn���ZRegisterWaitWithQueuer����r'���rV���r2���rZ���r���r����)r���rG���r����Z _is_cancel�msr���rH���r����r ���r����r!���r�������s*���� ���� � zIocpProactor._wait_for_handlec�����������������C���s0���||�j�kr,|�j��|��t�|���|�jdd��d�S�rI���)rF���rp���rQ���r����r����r�����r����objr ���r ���r!���r�������s���� z IocpProactor._register_with_iocpc�������������� ���C���s����|������t||�jd�}|jr$|jd=�|jsrz|d�d�|�}W�n,�tk rf�}�z|�|��W�5�d�}~X�Y�nX�|�|��||||f|�j|j <�|S�r���) r����r���r2���r���r"���r1���r9���r;���r����r'���)r���r���r�����callbackr����r����r����r ���r ���r!���r�������s���� zIocpProactor._registerc�����������������C���s���|������|�j�|��dS�)a ��Unregister an overlapped object. Call this method when its future has been cancelled. The event can already be signalled (pending in the proactor event queue). It is also safe if the event is never signalled (because it was cancelled). N)r����r����rL���r|���r ���r ���r!���r`������s����zIocpProactor._unregisterc�����������������C���s���t���|�}|�d��|S�rI���)r����r����)r���r�����sr ���r ���r!���r�������s���� zIocpProactor._get_accept_socketc�����������������C���s���|d�krt�}n0|dk�r td��nt�|d��}|t�kr>td��t�|�j|�}|d�krX�qZd}|\}}}}z|�j�|�\}} } }W�nX�t k r����|�j ���r�|�j �dd||||f�d���|dtj fkr�t�|��Y�q>Y�nX�| |�jkr�|����q>|���s>z|||| �}W�n:�tk �r@�} �z|�| ��|�j�|��W�5�d�} ~ X�Y�q>X�|�|��|�j�|��q>|�jD�]} |�j�| jd����q`|�j����d�S�)Nr���znegative timeoutr����ztimeout too bigz8GetQueuedCompletionStatus() returned an unexpected eventz)err=%s transferred=%s key=%#x address=%#x)r,����status)r����� ValueErrorr����r����rQ���ZGetQueuedCompletionStatusr����r�����pop�KeyErrorr2���Z get_debugr3���r����rJ���r_���r����r0���Zdoner1���r9���r����rL���r;���r����r'���rv���)r���r����r����r�����errZtransferredr����r'���r����r���r����r����r����r����r ���r ���r!���rK�����sL���� �� zIocpProactor._pollc�����������������C���s���|�j��|��d�S�r7���)r����rp���r����r ���r ���r!���� _stop_serving9��s����zIocpProactor._stop_servingc�����������������C���s��|�j�d�krd�S�t|�j����D�]�\}\}}}}|���r6qt|t�rBqz|����W�q�tk r��}�z6|�j d�k r�d||d�}|j r�|j |d<�|�j �|��W�5�d�}~X�Y�qX�qd}t� ��} | |�} |�jr�| t� ��kr�t�d|�t� ��| ���t� ��|�} |��|��q�g�|�_t�|�j���d�|�_�d�S�)NzCancelling a future failedr+���r/���g�������?z,%r is running after closing for %.1f seconds)r�����listr�����itemsZ cancelledr����rV���r0���r1���r2���r���r3����time� monotonicr����debugrK���r����rJ���r_���)r���r'���rN���r���r����r����r4���r5���Z msg_updateZ start_timeZnext_msgr ���r ���r!���ru���?��s@���� � � �zIocpProactor.closec�����������������C���s���|������d�S�r7���)ru���r8���r ���r ���r!���rw���n��s����zIocpProactor.__del__)r���)N)r���)r���)r���)r���N)r���)N)N)r>���r?���r@���rA���r���r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����r����ra���r����r����r����r`���r����rK���r����ru���rw���r ���r ���r ���r!���r������s8��� " 7/r���c�������������������@���s���e�Zd�Zdd��ZdS�)r����c����������� ���������sP���t�j|f|||||d�|����_��fdd�}��jj�t��jj��} | �|��d�S�)N)r����r����r����r����r����c��������������������s�����j����}���|��d�S�r7���)�_procZpollZ_process_exited)r����� returncoder8���r ���r!���r����y��s���� z4_WindowsSubprocessTransport._start.<locals>.callback) r ����Popenr����r2���r[���r�����intrD���r����) r���r����r����r����r����r����r����r����r����r����r ���r8���r!����_startt��s����������z"_WindowsSubprocessTransport._startN)r>���r?���r@���r��r ���r ���r ���r!���r����r��s���r����c�������������������@���s���e�Zd�ZeZdS�)r���N)r>���r?���r@���r���� _loop_factoryr ���r ���r ���r!���r������s���r���c�������������������@���s���e�Zd�ZeZdS�)r���N)r>���r?���r@���r ���r��r ���r ���r ���r!���r������s���r���)/rA���rQ���rJ���r����r����r����r����r����r����re�����r���r���r���r���r���r���r ���r ����logr����__all__rn���r����ZERROR_CONNECTION_REFUSEDZERROR_CONNECTION_ABORTEDr����r����ZFuturer���rC���rV���rZ����objectrb���ZBaseSelectorEventLooprx���ZBaseProactorEventLoopr ���r���ZBaseSubprocessTransportr����r���ZBaseDefaultEventLoopPolicyr���r���r���r ���r ���r ���r!����<module>���sR���0J4;e���`