Ë ‚Ö¦iKãóÆ—dZddlZejdk7red«‚ddlZddlZddlZddlmZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlmZddlmZdd lmZdd lmZdd lmZdd lmZdd lmZddlmZddlmZdZej6Zej8ZdZdZdZdZ Gd„dejB«Z"Gd„dejB«Z#Gd„de#«Z$Gd„de#«Z%Gd„de&«Z'Gd„d ejP«Z)Gd!„d"ejT«Z+Gd#„d$«Z,Gd%„d&ejZ«Z.e)Z/Gd'„d(ej`«Z1Gd)„d*ej`«Z2e2Z3y)+z.Selector and proactor event loops for Windows.éNÚwin32z win32 only)Úpartialé)Úevents)Úbase_subprocess)Úfutures)Ú exceptions)Úproactor_events)Úselector_events)Útasks)Ú windows_utils)Úlogger)ÚSelectorEventLoopÚProactorEventLoopÚ IocpProactorÚDefaultEventLoopPolicyÚWindowsSelectorEventLoopPolicyÚWindowsProactorEventLoopPolicyiÉiÔgü©ñÒMbP?gš™™™™™¹?cóX‡—eZdZdZddœˆfd„ Zˆfd„Zd„Zd ˆfd„ Zˆfd„Zˆfd „Z ˆxZ S) Ú_OverlappedFuturez†Subclass of Future which represents an overlapped operation. Cancelling it will immediately cancel the overlapped operation. N©Úloopcóf•—t‰|�|¬«|jr |jd=||_y©Nréÿÿÿÿ)ÚsuperÚ__init__Ú_source_tracebackÚ_ov)ÚselfÚovrÚ __class__s €ú//usr/lib64/python3.12/asyncio/windows_events.pyrz_OverlappedFuture.__init__7s1ø€Ü ‰Ñ˜dÐÔ#Ø × !Ò !Ø×&Ñ& rÐ*؈�ócóÌ•—t‰|�«}|j�H|jjrdnd}|j dd|›d|jj d›d�«|S)NÚpendingÚ completedrz overlapped=)rÚ _repr_inforr&ÚinsertÚaddress©r ÚinfoÚstater"s €r#r*z_OverlappedFuture._repr_info=s\ø€Ü‰wÑ!Ó#ˆØ �8‰8Ð Ø!%§¡×!1Ò!1‘I°{ˆEØ �K‰K˜˜\¨%¨°°4·8±8×3CÑ3CÀBÐ2GÀqÐIÔ J؈ r$có—|j€y |jj«d|_y#t$rM}d||dœ}|jr|j|d<|jj |«Yd}~d|_yd}~wwxYw)Nz&Cancelling an overlapped future failed©ÚmessageÚ exceptionÚfutureÚsource_traceback)rÚcancelÚOSErrorrÚ_loopÚcall_exception_handler)r ÚexcÚcontexts r#Ú_cancel_overlappedz$_OverlappedFuture._cancel_overlappedDs…€Ø �8‰8Ð Ø ð 7Ø �H‰H�O‰OÔ ðˆ�øôò 7àCØ ØñˆGð ×%Ò%Ø.2×.DÑ.D�Ð*Ñ+Ø �J‰J× -Ñ -¨g× 6Ð 6؈�ûð 7ús�1± BºØˆ r$có—d|_yrB)r)r Úfuts r#Ú_unregister_wait_cbz)_BaseWaitHandleFuture._unregister_wait_cb�s €ðˆ�r$cóˆ—|jsyd|_|j}d|_ tj|«|jd«y#t$rh}|j tj k7rAd||dœ}|jr|j|d<|jj|«Yd}~yYd}~Œ~d}~wwxYw©NFz$Failed to unregister the wait handler1r5) rTrSÚ _overlappedÚUnregisterWaitr7ÚwinerrorÚERROR_IO_PENDINGrr8r9rd©r rVr:r;s r#Ú_unregister_waitz&_BaseWaitHandleFuture._unregister_wait†s¶€Ø×ÒØ Ø ˆÔà×'Ñ'ˆ Ø ˆÔð Ü × &Ñ & {Ô 3ð × Ñ  Õ&øôò Ø�|‰|œ{×;Ñ;Ò;àEØ!$Ø"ñ�ð ×)Ò)Ø26×2HÑ2H�GÐ.Ñ/Ø— ‘ ×1Ñ1°'Ô:Üô<ûð ús©AÁ CÁAB<Â<CcóD•—|j«t‰|� |¬«Sr>)rlrr6r@s €r#r6z_BaseWaitHandleFuture.cancelžs ø€Ø ×ÑÔ܉w‰~ #ˆ~Ó&Ð&r$cóD•—|j«t‰|� |«yrB)rlrrCrDs €r#rCz#_BaseWaitHandleFuture.set_exception¢sø€Ø ×ÑÔÜ ‰Ñ˜iÕ(r$cóD•—|j«t‰|� |«yrB)rlrrFrGs €r#rFz _BaseWaitHandleFuture.set_result¦sø€Ø ×ÑÔÜ ‰Ñ˜6Õ"r$rB) rIrJrKrLrr]r*rdrlr6rCrFrMrNs@r#rPrPas6ø„Ù<à8<ö  ò'ô òò 'õ0'ô)÷#ð#r$rPcóB‡—eZdZdZddœˆfd„ Zd„Zˆfd„Zˆfd„ZˆxZS)Ú_WaitCancelFuturezoSubclass of Future which represents a wait for the cancellation of a _WaitHandleFuture using an event. Nrcó:•—t‰|�||||¬«d|_y)Nr)rrÚ_done_callback)r r!ÚeventrVrr"s €r#rz_WaitCancelFuture.__init__°s!ø€Ü ‰Ñ˜˜U K°dÐÔ;à"ˆÕr$có—td«‚)Nz'_WaitCancelFuture must not be cancelled)Ú RuntimeErrorr\s r#r6z_WaitCancelFuture.cancelµs€ÜÐDÓEÐEr$có`•—t‰|�|«|j�|j|«yyrB)rrFrsrGs €r#rFz_WaitCancelFuture.set_result¸s/ø€Ü ‰Ñ˜6Ô"Ø × Ñ Ð *Ø × Ñ  Õ %ð +r$có`•—t‰|�|«|j�|j|«yyrB)rrCrsrDs €r#rCz_WaitCancelFuture.set_exception½s/ø€Ü ‰Ñ˜iÔ(Ø × Ñ Ð *Ø × Ñ  Õ %ð +r$) rIrJrKrLrr6rFrCrMrNs@r#rqrq«s'ø„ñð8<ö#ò Fô&÷ &ð&r$rqcó4‡—eZdZddœˆfd„ Zˆfd„Zd„ZˆxZS)Ú_WaitHandleFutureNrcó�•—t‰|�||||¬«||_d|_t j dddd«|_d|_y)NrTF)rrÚ _proactorÚ_unregister_proactorrgÚ CreateEventÚ_eventÚ _event_fut)r r!rUrVÚproactorrr"s €r#rz_WaitHandleFuture.__init__ÄsGø€Ü ‰Ñ˜˜V [°tÐÔ<Ø!ˆŒØ$(ˆÔ!Ü!×-Ñ-¨d°D¸%ÀÓFˆŒ ؈�r$cóî•—|j�-tj|j«d|_d|_|jj |j «d|_t‰|�!|«yrB) rrYÚ CloseHandler€r|Ú _unregisterrrrd)r rcr"s €r#rdz%_WaitHandleFuture._unregister_wait_cbËsYø€Ø �;‰;Ð "Ü × Ñ  § ¡ Ô ,؈DŒKØ"ˆDŒOð �‰×"Ñ" 4§8¡8Ô,؈Œä ‰Ñ# CÕ(r$cóæ—|jsyd|_|j}d|_ tj||j«|jj|j|j«|_y#t $rh}|j tjk7rAd||dœ}|jr|j|d<|jj|«Yd}~yYd}~Œ¢d}~wwxYwrf)rTrSrgÚUnregisterWaitExrr7rirjrr8r9r|Ú _wait_cancelrdr€rks r#rlz"_WaitHandleFuture._unregister_waitÝsÔ€Ø×ÒØ Ø ˆÔà×'Ñ'ˆ Ø ˆÔð Ü × (Ñ (¨°d·k±kÔ BðŸ.™.×5Ñ5°d·k±kØ6:×6NÑ6NóPˆ�øôò Ø�|‰|œ{×;Ñ;Ò;àEØ!$Ø"ñ�ð ×)Ò)Ø26×2HÑ2H�GÐ.Ñ/Ø— ‘ ×1Ñ1°'Ô:Üô<ûð ús© A?Á? C0ÂAC+Ã+C0)rIrJrKrrdrlrMrNs@r#rzrzÃsø„ØBFöô)ö$Pr$rzcó2—eZdZdZd„Zd„Zd„Zd„Zd„ZeZ y)Ú PipeServerzXClass representing a pipe server. This is much like a bound, listening socket. cóŒ—||_tj«|_d|_d|_|j d«|_y©NT)Ú_addressÚweakrefÚWeakSetÚ_free_instancesÚ_pipeÚ_accept_pipe_futureÚ_server_pipe_handle)r r,s r#rzPipeServer.__init__üs;€ØˆŒ Ü&Ÿ™Ó0ˆÔðˆŒ Ø#'ˆÔ Ø×-Ñ-¨dÓ3ˆ� r$cóL—|j|jd«c}|_|S)NF)r�r’)r Útmps r#Ú_get_unconnected_pipez PipeServer._get_unconnected_pipes%€ð Ÿ*™* d×&>Ñ&>¸uÓ&EˆˆˆTŒZ؈ r$c ó,—|j«rytjtjz}|r|tjz}tj |j |tjtjztjztjtjtjtjtj«}tj|«}|j j#|«|SrB)ÚclosedrYÚPIPE_ACCESS_DUPLEXÚFILE_FLAG_OVERLAPPEDÚFILE_FLAG_FIRST_PIPE_INSTANCEÚCreateNamedPiperŒÚPIPE_TYPE_MESSAGEÚPIPE_READMODE_MESSAGEÚ PIPE_WAITÚPIPE_UNLIMITED_INSTANCESr ÚBUFSIZEÚNMPWAIT_WAIT_FOREVERÚNULLÚ PipeHandler�Úadd)r ÚfirstÚflagsÚhÚpipes r#r’zPipeServer._server_pipe_handlesÆ€à �;‰;Œ=ØÜ×*Ñ*¬W×-IÑ-IÑIˆÙ Ø ”W×:Ñ:Ñ :ˆEÜ × #Ñ #Ø �M‰M˜5Ü × %Ñ %¬×(EÑ(EÑ EÜ × Ñ ñ ä × ,Ñ ,Ü × !Ñ !¤=×#8Ñ#8Ü × (Ñ (¬'¯,©,ó  8ˆô×'Ñ'¨Ó*ˆØ ×Ñ× Ñ  Ô&؈ r$có—|jduSrB)rŒr\s r#r—zPipeServer.closed s€Ø— ‘  Ð%Ð&r$có —|j�!|jj«d|_|j�J|jD]}|j «Œd|_d|_|jj «yyrB)r‘r6rŒr�Úcloser�Úclear)r r¨s r#r«zPipeServer.close#sp€Ø × #Ñ #Ð /Ø × $Ñ $× +Ñ +Ô -Ø'+ˆDÔ $à �=‰=Ð $Ø×,Ô,�Ø— ‘ • ð-àˆDŒJØ ˆDŒMØ × Ñ × &Ñ &Õ (ð %r$N) rIrJrKrLrr•r’r—r«Ú__del__©r$r#r‰r‰÷s'„ñò4òòò$'ò )ð�Gr$r‰có—eZdZdZy)Ú_WindowsSelectorEventLoopz'Windows version of selector event loop.N)rIrJrKrLr®r$r#r°r°2s„Ú1r$r°cóD‡—eZdZdZdˆfd„ Zˆfd„Zd„Zd„Z dd„ZˆxZ S)rz2Windows version of proactor event loop using IOCP.có<•—|€ t«}t‰|� |«yrB)rrr)r r�r"s €r#rzProactorEventLoop.__init__9sø€Ø Ð Ü#“~ˆHÜ ‰Ñ˜Õ"r$có4•— |j�J‚|j|j«t‰|�«|j�a|jj }|jj «|�'|js|jj|«d|_yy#|j�a|jj }|jj «|�'|js|jj|«d|_wwxYwrB) Ú_self_reading_futureÚ call_soonÚ_loop_self_readingrÚ run_foreverrr6r&r|r„)r r!r"s €r#r·zProactorEventLoop.run_forever>sîø€ð 1Ø×,Ñ,Ð4Ð 4Ð4Ø �N‰N˜4×2Ñ2Ô 3Ü ‰GÑ Ô !à×(Ñ(Ð4Ø×.Ñ.×2Ñ2�Ø×)Ñ)×0Ñ0Ô2ð�>¨"¯*ª*Ø—N‘N×.Ñ.¨rÔ2Ø,0�Õ)ð5øˆt×(Ñ(Ð4Ø×.Ñ.×2Ñ2�Ø×)Ñ)×0Ñ0Ô2ð�>¨"¯*ª*Ø—N‘N×.Ñ.¨rÔ2Ø,0�Õ)ð5ús ƒ7B(Â(A/DcƒóšK—|jj|«}|ƒd{–—†}|«}|j||d|i¬«}||fS7Œ%­w)NÚaddr©Úextra)r|Ú connect_pipeÚ_make_duplex_pipe_transport)r Úprotocol_factoryr,Úfr¨ÚprotocolÚtranss r#Úcreate_pipe_connectionz(ProactorEventLoop.create_pipe_connectionQsZèø€Ø �N‰N× 'Ñ '¨Ó 0ˆØ�wˆÙ#Ó%ˆØ×0Ñ0°°xØ8>ÀÐ7Hð1óJˆà�hˆÐð ús‚!A £A ¤&A cƒóf‡‡‡‡‡K—t‰«Šdˆˆˆˆˆfd„ Љj‰«‰gS­w)NcóJ•—d} |ri|j«}‰jj|«‰j«r|j «y‰«}‰j ||d‰i¬«‰j «}|€y‰jj|«}|‰_ |j‰«y#t$r9|r#|j«dk7r|j «‰j‰«Yyt$rz}|r9|j«dk7r&‰jd||dœ«|j «n$‰j rt#j$d|d¬«‰j‰«Yd}~yd}~wt&j($r|r|j «YyYywxYw) Nr¹rºrzPipe accept failed)r2r3r¨zAccept pipe failed on pipe %rT)Úexc_info)rHr�Údiscardr—r«r½r•r|Ú accept_piper‘Úadd_done_callbackÚBrokenPipeErrorÚfilenorµr7r9Ú_debugrÚwarningr ÚCancelledError) r¿r¨rÀr:r,Úloop_accept_piper¾r Úservers €€€€€r#rÎz>ProactorEventLoop.start_serving_pipe..loop_accept_pipe\stø€ØˆDð) 6ÙØŸ8™8›:�DØ×*Ñ*×2Ñ2°4Ô8à—}‘}”🠙 œ Øá/Ó1�HØ×4Ñ4ؘh¨v°wÐ.?ð5ôAð×3Ñ3Ó5�Ø�<Øà—N‘N×.Ñ.¨tÓ4�ð*./�Ô*Ø×#Ñ#Ð$4Õ5øô+#ò 1Ù˜DŸK™K›M¨RÒ/Ø—J‘J”LØ—‘Ð/Ö0Üò 1Ù˜DŸK™K›M¨RÒ/Ø×/Ñ/Ø#7Ø%(Ø $ñ1ôð —J‘J•LØ—[’[Ü—N‘NÐ#BØ#'°$õ8à—‘Ð/×0Ñ0ûÜ×,Ñ,ò !ÙØ—J‘J–Lñð !ús1…A B7Á/B7ÂB7Â7?F"Ã8F"ÄA0E5Å5(F"Æ!F"rB)r‰rµ)r r¾r,rÎrÏs```@@r#Ústart_serving_pipez$ProactorEventLoop.start_serving_pipeYs2üèø€Ü˜GÓ$ˆ÷+ 6ñ+ 6ðZ �‰Ð'Ô(؈xˆùs‡*1c ‹óK—|j«} t||||||||f| |dœ| ¤Ž} | ƒd{–—†| S7Œ#ttf$r‚t$r+| j «| j «ƒd{–—†7‚wxYw­w)N)Úwaiterr»)Ú create_futureÚ_WindowsSubprocessTransportÚ SystemExitÚKeyboardInterruptÚ BaseExceptionr«Ú_wait) r rÀÚargsÚshellÚstdinÚstdoutÚstderrÚbufsizer»ÚkwargsrÒÚtransps r#Ú_make_subprocess_transportz,ProactorEventLoop._make_subprocess_transportŒs—èø€ð×#Ñ#Ó%ˆÜ,¨T°8¸TÀ5Ø-2°F¸FÀGð7à4:À%ñ7ð06ñ7ˆð Ø�LˆLðˆ ð ùÜÔ-Ð.ò Ø Üò Ø �L‰LŒNØ—,‘,“.× Ñ Ø ð üs1‚'A>ª8¯6°8´A>¶8¸;A;Á3A6Á4A;Á;A>rB) rIrJrKrLrr·rÂrÐrárMrNs@r#rr6s%ø„Ù<õ#ô 1ò&ò1ðj04÷r$rcóî—eZdZdZefd„Zd„Zd„Zd„Zd!d„Z d„Z e d „«Z e d „«Zd"d „Zd"d „Zd"d „Zd"d„Zd#d„Zd"d„Zd„Zd„Zd„Zd„Zd„Zd!d„Zd„Zd„Zd„Zd„Zd„Zd„Z d!d„Z!d„Z"d„Z#d „Z$y)$rz#Proactor implementation using IOCP.cóþ—d|_g|_tjtjt d|«|_i|_tj«|_ g|_ tj«|_ yrX) r8Ú_resultsrgÚCreateIoCompletionPortÚINVALID_HANDLE_VALUEr¢Ú_iocpÚ_cacher�rŽrTÚ _unregisteredÚ_stopped_serving)r Ú concurrencys r#rzIocpProactor.__init__£s_€ØˆŒ ؈Œ Ü ×7Ñ7Ü × ,Ñ ,¬d°A°{óDˆŒ àˆŒ Ü"Ÿ?™?Ó,ˆÔ؈ÔÜ '§¡Ó 1ˆÕr$có2—|j€ td«‚y)NzIocpProactor is closed)rçrvr\s r#Ú _check_closedzIocpProactor._check_closed­s€Ø �:‰:Ð ÜÐ7Ó8Ð 8ð r$cóô—dt|j«zdt|j«zg}|j€|j d«d|j j ›ddj|«›d�S)Nzoverlapped#=%sz result#=%sr—Ú<Ú r))Úlenrèrärçrar"rIÚjoin)r r.s r#Ú__repr__zIocpProactor.__repr__±s_€Ø ¤3 t§{¡{Ó#3Ñ3Øœs 4§=¡=Ó1Ñ1ð3ˆà �:‰:Ð Ø �K‰K˜Ô !øØ ŸN™N×3Ó3°S·X±X¸dµ^ÐDÐDr$có—||_yrB)r8)r rs r#Úset_loopzIocpProactor.set_loop¸s €Øˆ� r$Ncóz—|js|j|«|j}g|_ |d}S#d}wxYwrB)rär])r Útimeoutr”s r#ÚselectzIocpProactor.select»s:€Ø�}Š}Ø �J‰J�wÔ Ø�m‰mˆØˆŒ ð Øð‰Cø�$‰Cús²6¶:có\—|jj«}|j|«|SrB)r8rÓrF)r Úvaluercs r#Ú_resultzIocpProactor._resultÆs%€Ø�j‰j×&Ñ&Ó(ˆØ �‰�uÔØˆ r$cóÄ— |j«S#t$rD}|jtjtj fvrt |jŽ‚‚d}~wwxYwrB)Ú getresultr7rirgÚERROR_NETNAME_DELETEDÚERROR_OPERATION_ABORTEDÚConnectionResetErrorrÙ)rÁÚkeyr!r:s r#Úfinish_socket_funczIocpProactor.finish_socket_funcËsY€ð Ø—<‘<“>Ð !øÜò Ø�|‰|¤ × AÑ AÜ +× CÑ Cð EñEä*¨C¯H©HÐ5Ð5àûð  ús‚’ A›?AÁAcóš— |j|||«S#t$r,}|jtjk(r |dfcYd}~S‚d}~wwxYwrB)rr7rirgÚERROR_PORT_UNREACHABLE)ÚclsrÁrr!Ú empty_resultr:s r#Ú_finish_recvfromzIocpProactor._finish_recvfromÖsN€ð Ø×)Ñ)¨%°°bÓ9Ð 9øÜò ð�|‰|œ{×AÑAÒAØ# TÐ)Õ)àûð  ús‚• A ž A¾A ÁAÁA cóŠ—|j|«tjt«} t |t j «r"|j |j«||«n |j|j«|«|j|||j«S#t$r|jd«cYSwxYw)Nr$) Ú_register_with_iocprgÚ Overlappedr¢Ú isinstanceÚsocketÚWSARecvrÊÚReadFilerÉrûÚ _registerr©r ÚconnÚnbytesr¦r!s r#ÚrecvzIocpProactor.recvâs˜€Ø × Ñ  Ô&Ü × #Ñ #¤DÓ )ˆð %ܘ$¤§ ¡ Ô.Ø— ‘ ˜4Ÿ;™;›=¨&°%Õ8à— ‘ ˜DŸK™K›M¨6Ô2ð�~‰~˜b $¨×(?Ñ(?Ó@Ð@øôò %Ø—<‘< Ó$Ò $ð %úó¬AB%Â%CÃCcóŠ—|j|«tjt«} t |t j «r"|j |j«||«n |j|j«|«|j|||j«S#t$r|jd«cYSwxYwrX) r rgr r¢r r Ú WSARecvIntorÊÚ ReadFileIntorÉrûrr©r rÚbufr¦r!s r#Ú recv_intozIocpProactor.recv_intoïs—€Ø × Ñ  Ô&Ü × #Ñ #¤DÓ )ˆð #ܘ$¤§ ¡ Ô.Ø—‘˜tŸ{™{›}¨c°5Õ9à—‘ § ¡ £ ¨sÔ3ð�~‰~˜b $¨×(?Ñ(?Ó@Ð@øôò #Ø—<‘< “?Ò "ð #úrcó*—|j|«tjt«} |j |j «||«|j||t|jd¬««S#t $r|jd«cYSwxYw)N)r$Nr$©r) r rgr r¢Ú WSARecvFromrÊrÉrûrrrrs r#ÚrecvfromzIocpProactor.recvfromüs‡€Ø × Ñ  Ô&Ü × #Ñ #¤DÓ )ˆð -Ø �N‰N˜4Ÿ;™;›=¨&°%Ô 8ð�~‰~˜b $¬°×0EÑ0EØ=@ô)BóCð Cøôò -Ø—<‘<  Ó,Ò ,ð -úó¬!A5Á5BÂBcó*—|j|«tjt«} |j |j «||«|j||t|jd¬««S#t $r|jd«cYSwxYw)N©rNrr) r rgr r¢ÚWSARecvFromIntorÊrÉrûrrrrs r#Ú recvfrom_intozIocpProactor.recvfrom_intos‰€Ø × Ñ  Ô&Ü × #Ñ #¤DÓ )ˆð +Ø × Ñ ˜tŸ{™{›}¨c°5Ô 9ð�~‰~˜b $¬°×0EÑ0EØ=>ô)@óAð Aøôò +Ø—<‘<  Ó*Ò *ð +úrcóÔ—|j|«tjt«}|j |j «|||«|j |||j«SrB)r rgr r¢Ú WSASendTorÊrr)r rrr¦r¹r!s r#ÚsendtozIocpProactor.sendtosQ€Ø × Ñ  Ô&Ü × #Ñ #¤DÓ )ˆà � ‰ �T—[‘[“] C¨°Ô5à�~‰~˜b $¨×(?Ñ(?Ó@Ð@r$cóH—|j|«tjt«}t |t j «r"|j |j«||«n |j|j«|«|j|||j«SrB) r rgr r¢r r ÚWSASendrÊÚ WriteFilerrrs r#ÚsendzIocpProactor.sendsq€Ø × Ñ  Ô&Ü × #Ñ #¤DÓ )ˆÜ �dœFŸM™MÔ *Ø �J‰J�t—{‘{“} c¨5Õ 1à �L‰L˜Ÿ™›¨Ô ,à�~‰~˜b $¨×(?Ñ(?Ó@Ð@r$có|‡‡—|j‰«|j‰j«Štjt «}|j ‰j«‰j««ˆˆfd„}d„}|j|‰|«}||‰«}tj||j¬«|S)Ncó,•—|j«tjd‰j««}‰j t j tj|«‰j‰j««‰‰j«fS)Nz@P) rýÚstructÚpackrÊÚ setsockoptr Ú SOL_SOCKETrgÚSO_UPDATE_ACCEPT_CONTEXTÚ settimeoutÚ gettimeoutÚ getpeername)rÁrr!rrÚlisteners €€r#Ú finish_acceptz*IocpProactor.accept..finish_accept*slø€Ø �L‰LŒNä—+‘+˜d H§O¡OÓ$5Ó6ˆCØ �O‰OœF×-Ñ-Ü'×@Ñ@À#ô Gà �O‰O˜H×/Ñ/Ó1Ô 2ؘ×)Ñ)Ó+Ð+Ð +r$c“óvK— |ƒd{–—†y7Œ#tj$r|j«‚wxYw­wrB)r rÍr«)r4rs r#Ú accept_coroz(IocpProactor.accept..accept_coro3s2èø€ð Ø— ’ ùÜ×,Ñ,ò Ø— ‘ ” Øð üs ‚9„‰ŠŽ9�‘%6¶9r) r Ú_get_accept_socketÚfamilyrgr r¢ÚAcceptExrÊrr Ú ensure_futurer8)r r5r!r6r8r4Úcorors ` @r#ÚacceptzIocpProactor.accept$s“ù€Ø × Ñ  Ô*Ø×&Ñ& x§¡Ó7ˆÜ × #Ñ #¤DÓ )ˆØ � ‰ �H—O‘OÓ% t§{¡{£}Ô5õ ,ò ð—‘  H¨mÓ<ˆÙ˜6 4Ó(ˆÜ ×јD t§z¡zÕ2؈ r$c󘇗‰jtjk(rQtj‰j «|«|j j«}|jd«|S|j‰« tj‰j «‰j«tj"t$«}|j'‰j «|«ˆfd„}|j)|‰|«S#t$r?}|jtjk7r‚‰j!«ddk(r‚Yd}~Œ”d}~wwxYw)Nrrc󆕗|j«‰jtjtj d«‰SrX)rýr/r r0rgÚSO_UPDATE_CONNECT_CONTEXT)rÁrr!rs €r#Úfinish_connectz,IocpProactor.connect..finish_connectVs1ø€Ø �L‰LŒNà �O‰OœF×-Ñ-Ü'×AÑAÀ1ô FàˆKr$)Útyper Ú SOCK_DGRAMrgÚ WSAConnectrÊr8rÓrFr Ú BindLocalr:r7riÚerrnoÚ WSAEINVALÚ getsocknamer r¢Ú ConnectExr)r rr,rcÚer!rBs ` r#ÚconnectzIocpProactor.connect@sø€Ø �9‰9œ×)Ñ)Ò )ô × "Ñ " 4§;¡;£=°'Ô :Ø—*‘*×*Ñ*Ó,ˆCØ �N‰N˜4Ô ØˆJà × Ñ  Ô&ð Ü × !Ñ ! $§+¡+£-°·±Ô =ô× #Ñ #¤DÓ )ˆØ � ‰ �T—[‘[“] GÔ,ô ð�~‰~˜b $¨Ó7Ð7øô!ò Ø�z‰zœUŸ_™_Ò,Øà×ÑÓ! !Ñ$¨Ò)Øô*ûð  úsÂ.DÄ E Ä 5EÅE c ó6—|j|«tjt«}|dz}|dz dz}|j |j «t j|j ««|||dd«|j|||j«S)Nlÿÿé r) r rgr r¢Ú TransmitFilerÊÚmsvcrtÚ get_osfhandlerr)r ÚsockÚfileÚoffsetÚcountr!Ú offset_lowÚ offset_highs r#ÚsendfilezIocpProactor.sendfile_s‡€Ø × Ñ  Ô&Ü × #Ñ #¤DÓ )ˆØ˜kÑ)ˆ Ø ‘| {Ñ2ˆ Ø �‰˜Ÿ ™ › Ü×,Ñ,¨T¯[©[«]Ó;Ø" Kؘq !ô %ð �~‰~˜b $¨×(?Ñ(?Ó@Ð@r$có쇗|j‰«tjt«}|j ‰j ««}|r|j ‰«Sˆfd„}|j|‰|«S)Ncó(•—|j«‰SrB)rý)rÁrr!r¨s €r#Úfinish_accept_pipez4IocpProactor.accept_pipe..finish_accept_pipevsø€Ø �L‰LŒN؈Kr$)r rgr r¢ÚConnectNamedPiperÊrûr)r r¨r!Ú connectedr[s ` r#rÇzIocpProactor.accept_pipeksfø€Ø × Ñ  Ô&Ü × #Ñ #¤DÓ )ˆØ×'Ñ'¨¯ © « Ó6ˆ á ð—<‘< Ó%Ð %ô ð�~‰~˜b $Ð(:Ó;Ð;r$cƒó<K—t} tj|«} tj|«S#t$r(}|jtj k7r‚Yd}~nd}~wwxYwt |dzt«}tj|«ƒd{–—†7Œ’­w)Né) ÚCONNECT_PIPE_INIT_DELAYrgÚ ConnectPiper7riÚERROR_PIPE_BUSYÚminÚCONNECT_PIPE_MAX_DELAYr Úsleepr r£)r r,ÚdelayrUr:s r#r¼zIocpProactor.connect_pipe|s�èø€Ü'ˆØð Ü$×0Ñ0°Ó9�Øô×'Ñ'¨Ó/Ð/øôò Ø—<‘<¤;×#>Ñ#>Ò>Øô?ûð úô ˜ ™ Ô#9Ó:ˆEÜ—+‘+˜eÓ$× $Ñ $ðùs6‚B‹6 B¶ A'¿A"ÁBÁ"A'Á'.BÂBÂBcó(—|j||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 rUr÷s r#Úwait_for_handlezIocpProactor.wait_for_handle�s€ð ×$Ñ$ V¨W°eÓ<Ð.finish_wait_for_handle´sø€ð—7‘7“9Ð r$r)rírYÚINFINITEÚmathÚceilrgr r¢ÚRegisterWaitWithQueuerçr,rqr8rzrrè) r rUr÷Ú _is_cancelÚmsr!rVror¿s @r#rhzIocpProactor._wait_for_handležsÕø€Ø ×ÑÔà ˆ?Ü×!Ñ!‰Bô—‘˜7 S™=Ó)ˆBô× #Ñ #¤DÓ )ˆÜ!×7Ñ7Ø �D—J‘J § ¡ ¨Bó0ˆ á Ü! " f¨kÀÇ Á ÔK‰Aä! " f¨k¸4Ø'+§z¡zô3ˆAà × Ò Ø×#Ñ# BÐ'ô ð$% b¨!Ð-CÐ"Dˆ� ‰ �B—J‘JÑØˆr$có¸—||jvrL|jj|«tj|j «|j dd«yyrX)rTr¤rgrårÊrç©r Úobjs r#r z IocpProactor._register_with_iocpÀsI€ð �d×&Ñ&Ñ &Ø × Ñ × Ñ  Ô %Ü × .Ñ .¨s¯z©z«|¸T¿Z¹ZÈÈAÕ Nð 'r$có^—|j«t||j¬«}|jr |jd=|js |dd|«}|j |«||||f|j|j<|S#t $r}|j|«Yd}~Œ>d}~wwxYwr) rírr8rr&rFr7rCrèr,)r r!rxÚcallbackr¿rúrKs r#rzIocpProactor._registerÊs¢€Ø ×ÑÔô ˜b t§z¡zÔ 2ˆØ × Ò Ø×#Ñ# BÐ'Ø�zŠzð  $Ù   t¨RÓ0�ð— ‘ ˜UÔ#ð$% b¨#¨xÐ"8ˆ� ‰ �B—J‘JÑØˆøôò #Ø—‘ ×"Ñ"ûð #úsÁ B B,ÂB'Â'B,cóZ—|j«|jj|«y)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éra)r r!s r#r„zIocpProactor._unregisterês$€ð ×ÑÔØ ×Ñ×!Ñ! "Õ%r$cóR—tj|«}|jd«|SrX)r r2)r r:Úss r#r9zIocpProactor._get_accept_socketôs €Ü �M‰M˜&Ó !ˆØ � ‰ �QŒØˆr$c ó"—|€t}n<|dkr td«‚tj|dz«}|tk\r td«‚ t j |j |«}|€n“d}|\}}}} |jj|«\}} } } | |j vr|j#«nI|j%«s9 | ||| «} |j'| «|j(j+|«d}Œ¶|j0D](} |jj| j2d«Œ*|j0j5«y#t$rl|jj«r%|jjdd||||fzdœ«|dtjfvrtj|«Y�Œ}wxYw#t,$r7} |j/| «|j(j+|«Yd} ~ �Œd} ~ wwxYw#d}wxYw)Nrznegative timeoutrmztimeout too bigz8GetQueuedCompletionStatus() returned an unexpected eventz)err=%s transferred=%s key=%#x address=%#x)r2Ústatus)rpÚ ValueErrorrqrrrgÚGetQueuedCompletionStatusrçrèÚpopÚKeyErrorr8Ú get_debugr9rærYrƒrêr6ÚdonerFrärar7rCrér,r¬)r r÷rurÚerrÚ transferredrr,r¿r!rxrzrúrKs r#r]zIocpProactor._pollùsê€Ø ˆ?܉BØ �qŠ[ÜÐ/Ó0Ð 0ô—‘˜7 S™=Ó)ˆBØ”XŠ~Ü Ð!2Ó3Ð3àÜ ×:Ñ:¸4¿:¹:ÀrÓJˆF؈~ØØˆBà-3Ñ *ˆC�˜c 7ð Ø'+§{¡{§¡°wÓ'?Ñ$��2�s˜Hð �d×+Ñ+Ñ+Ø—‘• ð—V‘V”Xð Ù$ [°#°rÓ:�Eð —L‘L Ô'Ø—M‘M×(Ñ(¨Ô+à�AðMðR×$Ô$ˆBØ �K‰K�O‰O˜BŸJ™J¨Õ -ð%à ×Ñ× Ñ Õ"øôEò Ø—:‘:×'Ñ'Ô)Ø—J‘J×5Ñ5ð%7à#NØ&)¨;¸¸WÐ%Eñ$Fñ7ôð˜q¤+×"BÑ"BÐCÑCÜ×'Ñ'¨Ô,Úð ûô,ò,Ø—O‘O AÔ&Ø—M‘M×(Ñ(¨×+Ò+ûð,ûð‘AúsCÁ4 Eà GÃ,H ÅA1GÇGÇ HÇ,HÇ<H ÈHÈH È Hcó:—|jj|«yrB)rêr¤rws r#Ú _stop_servingzIocpProactor._stop_serving2s€ð ×Ñ×!Ñ! #Õ&r$có4—|j€yt|jj««D]:\}}}}|j «rŒt |t «rŒ* |j«Œ<d}tj«}||z} |jrx| tj«krCtjd|tj«|z «tj«|z} |j!|«|jrŒxg|_t%j&|j«d|_y#t$rS}|j�™>Ó+Ò+Ü— ‘ ÐKØ!¤4§>¡>Ó#3°jÑ#@ôBäŸ>™>Ó+¨jÑ8�ð �J‰J�zÔ "ð�k‹kðˆŒ ä×јDŸJ™JÔ'؈� øô;ò CØ—z‘zÐ-à'CØ),Ø&)ñ#˜ð ×0Ò0Ø:=×:OÑ:O˜GÐ$6Ñ7ØŸ ™ ×9Ñ9¸'ÔBÿùð CúsÁD;Ä; FÅAFÆFcó$—|j«yrB)r«r\s r#r­zIocpProactor.__del__gs €Ø � ‰ � r$rB)rr!)%rIrJrKrLrprrírórõrørûÚ staticmethodrÚ classmethodrrrrr#r&r*r>rLrXrÇr¼rir‡rhr rr„r9r]r‰r«r­r®r$r#rr sÉ„Ù-à#+ó2ò9òEòó òð ñóððñ óð ó Aó Aó Có AóAóAòò88ò> Aò<ò"0ó&=òò òDOòò@&òó 7#òr'ò -ó^r$rcó—eZdZd„Zy)rÔc óø‡—tj|f|||||dœ|¤Ž‰_ˆfd„}‰jjj t ‰jj««} | j|«y)N)rÚrÛrÜrÝrÞcó\•—‰jj«}‰j|«yrB)Ú_procÚpollÚ_process_exited)r¿Ú returncoder s €r#rzz4_WindowsSubprocessTransport._start..callbackrs!ø€ØŸ™Ÿ™Ó*ˆJØ × Ñ  Õ ,r$) r ÚPopenršr8r|riÚintrRrÈ) r rÙrÚrÛrÜrÝrÞrßrzr¿s ` r#Ú_startz"_WindowsSubprocessTransport._startmsoø€Ü"×(Ñ(Ø ð'Ø U°6À&Øñ'à%ñ'ˆŒ ô -ð �J‰J× Ñ × 0Ñ 0´°T·Z±Z×5GÑ5GÓ1HÓ IˆØ ×јHÕ%r$N)rIrJrKr r®r$r#rÔrÔks„ó &r$rÔcó—eZdZeZy)rN)rIrJrKrÚ _loop_factoryr®r$r#rr}ó„Ø%�Mr$rcó—eZdZeZy)rN)rIrJrKrr¢r®r$r#rr�r£r$r)4rLÚsysÚplatformÚ ImportErrorrgrYrGÚ functoolsrrqrPr r-rŽr�Úrrrr r r r r ÚlogrÚ__all__r¢rpÚERROR_CONNECTION_REFUSEDÚERROR_CONNECTION_ABORTEDr`rdÚFuturerrPrqrzÚobjectr‰ÚBaseSelectorEventLoopr°ÚBaseProactorEventLooprrÚBaseSubprocessTransportrÔrÚBaseDefaultEventLoopPolicyrrrr®r$r#Úr´s\ðÙ4ã à‡<�<�7ÒÙ �lÓ #Ð#ãÛÛ ÝÛ Û Û Û Û ÛåÝÝÝÝÝÝÝÝð €ð‡|�|€Ø × Ñ €ØÐØÐð ÐðÐô-˜Ÿ™ô-ô`G#˜GŸN™NôG#ôT&Ð-ô&ô01PÐ-ô1Pôh8�ô8ôv2 × EÑ Eô2ôg˜×=Ñ=ôg÷THñHôV & /×"IÑ"Iô &ð.Ðô& V×%FÑ%Fô&ô& V×%FÑ%Fô&ð8Ñr$