ó
    F\h-¼  ã                   ó  • S r SrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
 SSKrSSKJr  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJr  \" \R                  S5      r\(       a   \R4                  " S5      rS r " S S\R<                  5      r " S S\R@                  \RB                  5      r" " S S\"5      r# " S S\"\RH                  5      r%g! \ a    Sr NÇf = f! \ a    Sr Nrf = f)zÄEvent loop using a selector and related classes.

A selector is a "notify-when-ready" multiplexer.  For a subclass which
also includes support for signal handling, see the unix_events sub-module.
)ÚBaseSelectorEventLoopé    Né   )Úbase_events)Ú	constants)Úevents)Úfutures)Ú	protocols)Ússlproto)Ú
transports)Útrsock)ÚloggerÚsendmsgÚ
SC_IOV_MAXFc                 óv   •  U R                  U5      n[        UR                  U-  5      $ ! [         a     gf = f©NF)Úget_keyÚboolr   ÚKeyError)ÚselectorÚfdÚeventÚkeys       Ú./usr/lib/python3.13/asyncio/selector_events.pyÚ_test_selector_eventr   *   sA   € ð(Ø×Ñ˜rÓ"ˆô �C—J‘J Ñ&Ó'Ð'øô ó Ùðús   ‚+ «
8·8c                   ó8  ^ • \ rS rSrSrS5U 4S jjrS5SSS.S jjr S5SSSS\R                  \R                  S.S	 jjr
 S6S
 jrU 4S jrS rS rS rS rS rSSS\R                  \R                  4S jrSSS\R                  \R                  4S jrSS\R                  \R                  4S jrS rS rS rS rS rS rS rS rS rS rS5S jrS  r S! r!S" r"S# r#S$ r$S7S% jr%S& r&S' r'S( r(S) r)S* r*S+ r+S, r,S5S- jr-S. r.S/ r/S0 r0S1 r1S2 r2S3 r3S4r4U =r5$ )8r   é5   zBSelector event loop.

See events.EventLoop for API specification.
Nc                 ó  >• [         TU ]  5         Uc  [        R                  " 5       n[        R
                  " SUR                  R                  5        Xl        U R                  5         [        R                  " 5       U l        g )NzUsing selector: %s)ÚsuperÚ__init__Ú	selectorsÚDefaultSelectorr   ÚdebugÚ	__class__Ú__name__Ú	_selectorÚ_make_self_pipeÚweakrefÚWeakValueDictionaryÚ_transports)Úselfr   r#   s     €r   r   ÚBaseSelectorEventLoop.__init__;   s_   ø€ Ü‰ÑÔàÑÜ ×0Ò0Ó2ˆHÜ�ŠÐ)¨8×+=Ñ+=×+FÑ+FÔGØ!ŒØ×ÑÔÜ"×6Ò6Ó8ˆÕó    ©ÚextraÚserverc                ó>   • U R                  U5        [        XX#XE5      $ ©N)Ú_ensure_fd_no_transportÚ_SelectorSocketTransport)r*   ÚsockÚprotocolÚwaiterr.   r/   s         r   Ú_make_socket_transportÚ,BaseSelectorEventLoop._make_socket_transportE   s$   € à×$Ñ$ TÔ*Ü'¨°HØ(-ó7ð 	7r,   F)Úserver_sideÚserver_hostnamer.   r/   Ússl_handshake_timeoutÚssl_shutdown_timeoutc                ó‚   • U R                  U5        [        R                  " XX4XVU	U
S9n[        XUXxS9  UR                  $ )N)r;   r<   r-   )r2   r
   ÚSSLProtocolr3   Ú_app_transport)r*   Úrawsockr5   Ú
sslcontextr6   r9   r:   r.   r/   r;   r<   Ússl_protocols               r   Ú_make_ssl_transportÚ)BaseSelectorEventLoop._make_ssl_transportK   sM   € ð 	×$Ñ$ WÔ-Ü×+Ò+Ø˜JØØ"7Ø!5ñ	
ˆô 	! °Ø',ò	=à×*Ñ*Ð*r,   c                 ó@   • U R                  U5        [        XUX4U5      $ r1   )r2   Ú_SelectorDatagramTransport)r*   r4   r5   Úaddressr6   r.   s         r   Ú_make_datagram_transportÚ.BaseSelectorEventLoop._make_datagram_transport]   s(   € à×$Ñ$ TÔ*Ü)¨$°hØ*1¸5óBð 	Br,   c                 ó  >• U R                  5       (       a  [        S5      eU R                  5       (       a  g U R                  5         [        TU ]  5         U R                  b"  U R                  R                  5         S U l        g g )Nz!Cannot close a running event loop)Ú
is_runningÚRuntimeErrorÚ	is_closedÚ_close_self_piper   Úcloser%   ©r*   r#   s    €r   rO   ÚBaseSelectorEventLoop.closec   sg   ø€ Ø�?‰?×ÑÜÐBÓCÐCØ�>‰>×ÑØØ×ÑÔÜ‰‰ŒØ�>‰>Ñ%Ø�N‰N× Ñ Ô"Ø!ˆD�Nð &r,   c                 ó  • U R                  U R                  R                  5       5        U R                  R                  5         S U l        U R                  R                  5         S U l        U =R
                  S-  sl        g )Nr   )Ú_remove_readerÚ_ssockÚfilenorO   Ú_csockÚ_internal_fds©r*   s    r   rN   Ú&BaseSelectorEventLoop._close_self_pipen   s\   € Ø×Ñ˜DŸK™K×.Ñ.Ó0Ô1Ø�‰×ÑÔØˆŒØ�‰×ÑÔØˆŒØ×Ò˜aÑÖr,   c                 óF  • [         R                  " 5       u  U l        U l        U R                  R	                  S5        U R                  R	                  S5        U =R
                  S-  sl        U R                  U R                  R                  5       U R                  5        g )NFr   )	ÚsocketÚ
socketpairrT   rV   ÚsetblockingrW   Ú_add_readerrU   Ú_read_from_selfrX   s    r   r&   Ú%BaseSelectorEventLoop._make_self_pipev   sq   € ä#)×#4Ò#4Ó#6Ñ ˆŒ�T”[Ø�‰×Ñ Ô&Ø�‰×Ñ Ô&Ø×Ò˜aÑÕØ×Ñ˜Ÿ™×+Ñ+Ó-¨t×/CÑ/CÕDr,   c                 ó   • g r1   © ©r*   Údatas     r   Ú_process_self_dataÚ(BaseSelectorEventLoop._process_self_data~   s   € Ør,   c                 óª   •   U R                   R                  S5      nU(       d  g U R                  U5        M7  ! [         a     ME  [         a     g f = f)Ni   )rT   Úrecvre   ÚInterruptedErrorÚBlockingIOErrorrc   s     r   r_   Ú%BaseSelectorEventLoop._read_from_self�   sV   € ØðØ—{‘{×'Ñ'¨Ó-�ÞØØ×'Ñ'¨Ô-ñ øô $ó ÚÜ"ó Ùðús   ƒ"9 ¦9 ¹
AÁ	AÁAc                 ó¸   • U R                   nUc  g  UR                  S5        g ! [         a+    U R                  (       a  [        R
                  " SSS9   g  g f = f)Nó    z3Fail to write a null byte into the self-pipe socketT©Úexc_info)rV   ÚsendÚOSErrorÚ_debugr   r"   )r*   Úcsocks     r   Ú_write_to_selfÚ$BaseSelectorEventLoop._write_to_self�   sU   € ð —‘ˆØ‰=Øð	,Ø�J‰J�uÕøÜó 	,Ø�{�{Ü—’ð 0à&*ô,ñ ð	,ús   ’$ ¤0AÁAéd   c                 ó`   • U R                  UR                  5       U R                  XX4UXg5	        g r1   )r^   rU   Ú_accept_connection)r*   Úprotocol_factoryr4   rA   r/   Úbacklogr;   r<   s           r   Ú_start_servingÚ$BaseSelectorEventLoop._start_servingŸ   s-   € ð 	×Ñ˜Ÿ™›¨×(?Ñ(?Ø)°ÀWØ.õ	Fr,   c                 óú  • [        U5       Hy  n UR                  5       u  pšU R                  (       a  [        R                  " SXJU	5        U	R                  S5        SU
0nU R                  XX³UXg5      nU R                  U5        M{     g ! [        [        [        4 a       g [         aÏ  nUR                  [        R                  [        R                  [        R                  [        R                   4;   a}  U R#                  SU[$        R&                  " U5      S.5        U R)                  UR+                  5       5        U R-                  [.        R0                  U R2                  XX4XVU5	         S nAGMh  e S nAff = f)Nz#%r got a new connection from %r: %rFÚpeernamez&socket.accept() out of system resource)ÚmessageÚ	exceptionr[   )ÚrangeÚacceptrr   r   r"   r]   Ú_accept_connection2Úcreate_taskrj   ri   ÚConnectionAbortedErrorrq   ÚerrnoÚEMFILEÚENFILEÚENOBUFSÚENOMEMÚcall_exception_handlerr   ÚTransportSocketrS   rU   Ú
call_laterr   ÚACCEPT_RETRY_DELAYr{   )r*   ry   r4   rA   r/   rz   r;   r<   Ú_ÚconnÚaddrr.   r‚   Úexcs                 r   rx   Ú(BaseSelectorEventLoop._accept_connection§   sF  € ô �w–ˆAð")Ø!Ÿ[™[›]‘
�Ø—;—;Ü—L’LÐ!FØ!'¨tô5à× Ñ  Ô'ð2 $ TÐ*�Ø×1Ñ1Ø$¨E¸vØ)óA�ð × Ñ  Ö(òG  øô $Ô%5Ô7MÐNó âÜó à—9‘9¤§¡¬u¯|©|Ü!&§¡´·±ð!>ó >ð
 ×/Ñ/Ø#KØ%(Ü"(×"8Ò"8¸Ó">ñ1ô ð
 ×'Ñ'¨¯©«Ô6Ø—O‘O¤I×$@Ñ$@Ø$(×$7Ñ$7Ø$4¸JØ$+Ø$8÷	:ó :ð ûð'ús%   �AB
Â
E:Â"	E:Â+CE5Å4E5Å5E:c              ƒ   ó¼  #   • S nS n	 U" 5       nU R                  5       n
U(       a  U R                  X(XJSX5UUS9	n	OU R                  X(X£US9n	 U
I S h  v•N   g  N! [         a    U	R	                  5         S n
e f = f! [
        [        4 a    e [         aD  nU R                  (       a)  SUS.nUb  XŒS'   U	b  XœS'   U R                  U5         S nAg  S nAg S nAff = f7f)NT)r6   r9   r.   r/   r;   r<   )r6   r.   r/   z3Error on transport creation for incoming connection)r   r€   r5   Ú	transport)	Úcreate_futurerC   r7   ÚBaseExceptionrO   Ú
SystemExitÚKeyboardInterruptrr   r‹   )r*   ry   r�   r.   rA   r/   r;   r<   r5   r•   r6   r’   Úcontexts                r   rƒ   Ú)BaseSelectorEventLoop._accept_connection2Õ   s  é € ð
 ˆØˆ	ð&	5Ù'Ó)ˆHØ×'Ñ'Ó)ˆFÞØ ×4Ñ4Ø JØ $¨EØ*?Ø)=ð	 5ð ?‘	ð !×7Ñ7Ø¨6Ø!ð 8ð #�	ðØ—“øÜ ó Ø—‘Ô!ð �Øðûô Ô-Ð.ó 	ØÜó 	5Ø�{�{ð NØ!$ñ�ð
 Ñ'Ø*2˜JÑ'ØÑ(Ø+4˜KÑ(Ø×+Ñ+¨G×4Ñ4ô ûð	5üsS   ‚CˆAA; ÁA ÁAÁA ÁCÁA ÁA8Á8A; Á;CÂ5CÃ

CÃCÃCc                 óN  • Un[        U[        5      (       d   [        UR                  5       5      nU R                  R                  U5      nU(       a)  UR                  5       (       d  [        SU< SU< 35      eg g ! [        [        [
        4 a    [        SU< 35      S ef = f)NzInvalid file object: zFile descriptor z is used by transport )
Ú
isinstanceÚintrU   ÚAttributeErrorÚ	TypeErrorÚ
ValueErrorr)   ÚgetÚ
is_closingrL   )r*   r   rU   r•   s       r   r2   Ú-BaseSelectorEventLoop._ensure_fd_no_transport  sª   € ØˆÜ˜&¤#×&Ñ&ðKÜ˜VŸ]™]›_Ó-�ð ×$Ñ$×(Ñ(¨Ó0ˆ	Þ˜Y×1Ñ1×3Ñ3ÜØ" 2¡&Ð(>Ø‘-ð!ó"ð "ð 4ˆ9øô	 #¤I¬zÐ:ó Kä Ð#8¸¹Ð!?Ó@ÀdÐJðKús   ™A> Á>&B$c                 óÄ  • U R                  5         [        R                  " X#U S 5      nU R                  R	                  5       R                  U5      nUc/  U R                  R                  U[        R                  US 45        U$ UR                  UR                  snu  pxU R                  R                  X[        R                  -  XH45        Ub  UR                  5         U$ r1   )Ú_check_closedr   ÚHandler%   Úget_mapr¢   Úregisterr    Ú
EVENT_READrd   ÚmodifyÚcancel©	r*   r   ÚcallbackÚargsÚhandler   ÚmaskÚreaderÚwriters	            r   r^   Ú!BaseSelectorEventLoop._add_reader  s¾   € Ø×ÑÔÜ—’˜x¨t°TÓ:ˆØ�n‰n×$Ñ$Ó&×*Ñ*¨2Ó.ˆØ‰;Ø�N‰N×#Ñ# B¬	×(<Ñ(<Ø%+¨T Nô4ð ˆð &)§Z¡Z°·±Ð"ˆDÑ"�6Ø�N‰N×!Ñ! "¬Y×-AÑ-AÑ&AØ#)Ð"2ô4àÑ!Ø—‘”Øˆr,   c                 ó’  • U R                  5       (       a  gU R                  R                  5       R                  U5      nUc  gUR                  UR
                  snu  pEU[        R                  ) -  nU(       d  U R                  R                  U5        OU R                  R                  XS U45        Ub  UR                  5         gg)NFT)rM   r%   r¨   r¢   r   rd   r    rª   Ú
unregisterr«   r¬   ©r*   r   r   r±   r²   r³   s         r   rS   Ú$BaseSelectorEventLoop._remove_reader!  s£   € Ø�>‰>×ÑØØ�n‰n×$Ñ$Ó&×*Ñ*¨2Ó.ˆØ‰;ØØ!$§¡¨S¯X©XÐˆÑˆvØ”×%Ñ%Ð%Ñ%ˆÞØ�N‰N×%Ñ% bÕ)à�N‰N×!Ñ! "¨T°6¨NÔ;àÑØ�M‰MŒOØàr,   c                 óÄ  • U R                  5         [        R                  " X#U S 5      nU R                  R	                  5       R                  U5      nUc/  U R                  R                  U[        R                  S U45        U$ UR                  UR                  snu  pxU R                  R                  X[        R                  -  Xt45        Ub  UR                  5         U$ r1   )r¦   r   r§   r%   r¨   r¢   r©   r    ÚEVENT_WRITErd   r«   r¬   r­   s	            r   Ú_add_writerÚ!BaseSelectorEventLoop._add_writer4  s¾   € Ø×ÑÔÜ—’˜x¨t°TÓ:ˆØ�n‰n×$Ñ$Ó&×*Ñ*¨2Ó.ˆØ‰;Ø�N‰N×#Ñ# B¬	×(=Ñ(=Ø%)¨6 Nô4ð ˆð &)§Z¡Z°·±Ð"ˆDÑ"�6Ø�N‰N×!Ñ! "¬Y×-BÑ-BÑ&BØ#)Ð"2ô4àÑ!Ø—‘”Øˆr,   c                 ó’  • U R                  5       (       a  gU R                  R                  5       R                  U5      nUc  gUR                  UR
                  snu  pEU[        R                  ) -  nU(       d  U R                  R                  U5        OU R                  R                  XUS45        Ub  UR                  5         gg)úRemove a writer callback.FNT)rM   r%   r¨   r¢   r   rd   r    rº   r¶   r«   r¬   r·   s         r   Ú_remove_writerÚ$BaseSelectorEventLoop._remove_writerC  s£   € à�>‰>×ÑØØ�n‰n×$Ñ$Ó&×*Ñ*¨2Ó.ˆØ‰;ØØ!$§¡¨S¯X©XÐˆÑˆvà”×&Ñ&Ð&Ñ&ˆÞØ�N‰N×%Ñ% bÕ)à�N‰N×!Ñ! "¨V°T¨NÔ;àÑØ�M‰MŒOØàr,   c                 óL   • U R                  U5        U R                  " X/UQ76   g)zAdd a reader callback.N)r2   r^   ©r*   r   r®   r¯   s       r   Ú
add_readerÚ BaseSelectorEventLoop.add_readerX  ó#   € à×$Ñ$ RÔ(Ø×Ò˜Ð-¨Ô-r,   c                 óF   • U R                  U5        U R                  U5      $ )zRemove a reader callback.)r2   rS   ©r*   r   s     r   Úremove_readerÚ#BaseSelectorEventLoop.remove_reader]  ó!   € à×$Ñ$ RÔ(Ø×"Ñ" 2Ó&Ð&r,   c                 óL   • U R                  U5        U R                  " X/UQ76   g)zAdd a writer callback..N)r2   r»   rÂ   s       r   Ú
add_writerÚ BaseSelectorEventLoop.add_writerb  rÅ   r,   c                 óF   • U R                  U5        U R                  U5      $ )r¾   )r2   r¿   rÇ   s     r   Úremove_writerÚ#BaseSelectorEventLoop.remove_writerg  rÊ   r,   c              ƒ   óô  #   • [         R                  " U5        U R                  (       a  UR                  5       S:w  a  [	        S5      e UR                  U5      $ ! [        [        4 a     Of = fU R                  5       nUR                  5       nU R                  U5        U R                  X@R                  X1U5      nUR                  [        R                  " U R                   XES95        UI Sh  v•N  $ 7f)z¬Receive data from the socket.

The return value is a bytes object representing the data received.
The maximum amount of data to be received at once is specified by
nbytes.
r   úthe socket must be non-blocking©r°   N)r   Ú_check_ssl_socketrr   Ú
gettimeoutr¡   rh   rj   ri   r–   rU   r2   r^   Ú
_sock_recvÚadd_done_callbackÚ	functoolsÚpartialÚ_sock_read_done)r*   r4   ÚnÚfutr   r°   s         r   Ú	sock_recvÚBaseSelectorEventLoop.sock_recvl  sÏ   é € ô 	×%Ò% dÔ+Ø�;�;˜4Ÿ?™?Ó,°Ó1ÜÐ>Ó?Ð?ð	Ø—9‘9˜Q“<ÐøÜÔ!1Ð2ó 	Ùð	úà× Ñ Ó"ˆØ�[‰[‹]ˆØ×$Ñ$ RÔ(Ø×!Ñ! "§o¡o°sÀ!ÓDˆØ×ÑÜ×Ò˜d×2Ñ2°BÑFô	Hà�yˆyÐùó7   ‚AC8Á
A ÁC8ÁA.Á+C8Á-A.Á.BC8Ã2C5Ã3C8c                 óX   • Ub  UR                  5       (       d  U R                  U5        g g r1   )Ú	cancelledrÈ   ©r*   r   rÜ   r°   s       r   rÚ   Ú%BaseSelectorEventLoop._sock_read_done‚  ó(   € Ø‰> ×!1Ñ!1×!3Ñ!3Ø×Ñ˜rÕ"ð "4r,   c                 ó  • UR                  5       (       a  g  UR                  U5      nUR                  U5        g ! [        [        4 a     g [
        [        4 a    e [         a  nUR                  U5         S nAg S nAff = fr1   )	Údonerh   Ú
set_resultrj   ri   r˜   r™   r—   Úset_exception)r*   rÜ   r4   rÛ   rd   r’   s         r   rÖ   Ú BaseSelectorEventLoop._sock_recv†  sw   € ð �8‰8�:‰:Øð		!Ø—9‘9˜Q“<ˆDð �N‰N˜4Õ øô  Ô!1Ð2ó 	ÙÜÔ-Ð.ó 	ØÜó 	#Ø×Ñ˜c×"Ñ"ûð	#úó   ˜; »BÁBÁ&A<Á<Bc              ƒ   óô  #   • [         R                  " U5        U R                  (       a  UR                  5       S:w  a  [	        S5      e UR                  U5      $ ! [        [        4 a     Of = fU R                  5       nUR                  5       nU R                  U5        U R                  X@R                  X1U5      nUR                  [        R                  " U R                   XES95        UI Sh  v•N  $ 7f)z�Receive data from the socket.

The received data is written into *buf* (a writable buffer).
The return value is the number of bytes written.
r   rÒ   rÓ   N)r   rÔ   rr   rÕ   r¡   Ú	recv_intorj   ri   r–   rU   r2   r^   Ú_sock_recv_intor×   rØ   rÙ   rÚ   )r*   r4   ÚbufrÜ   r   r°   s         r   Úsock_recv_intoÚ$BaseSelectorEventLoop.sock_recv_into–  sÒ   é € ô 	×%Ò% dÔ+Ø�;�;˜4Ÿ?™?Ó,°Ó1ÜÐ>Ó?Ð?ð	Ø—>‘> #Ó&Ð&øÜÔ!1Ð2ó 	Ùð	úà× Ñ Ó"ˆØ�[‰[‹]ˆØ×$Ñ$ RÔ(Ø×!Ñ! "×&:Ñ&:¸CÀsÓKˆØ×ÑÜ×Ò˜d×2Ñ2°BÑFô	Hà�yˆyÐùrß   c                 ó  • UR                  5       (       a  g  UR                  U5      nUR                  U5        g ! [        [        4 a     g [
        [        4 a    e [         a  nUR                  U5         S nAg S nAff = fr1   )	ræ   rì   rç   rj   ri   r˜   r™   r—   rè   )r*   rÜ   r4   rî   Únbytesr’   s         r   rí   Ú%BaseSelectorEventLoop._sock_recv_into«  sx   € ð �8‰8�:‰:Øð		#Ø—^‘^ CÓ(ˆFð �N‰N˜6Õ"øô  Ô!1Ð2ó 	ÙÜÔ-Ð.ó 	ØÜó 	#Ø×Ñ˜c×"Ñ"ûð	#úrê   c              ƒ   óô  #   • [         R                  " U5        U R                  (       a  UR                  5       S:w  a  [	        S5      e UR                  U5      $ ! [        [        4 a     Of = fU R                  5       nUR                  5       nU R                  U5        U R                  X@R                  X1U5      nUR                  [        R                  " U R                   XES95        UI Sh  v•N  $ 7f)zçReceive a datagram from a datagram socket.

The return value is a tuple of (bytes, address) representing the
datagram received and the address it came from.
The maximum amount of data to be received at once is specified by
nbytes.
r   rÒ   rÓ   N)r   rÔ   rr   rÕ   r¡   Úrecvfromrj   ri   r–   rU   r2   r^   Ú_sock_recvfromr×   rØ   rÙ   rÚ   )r*   r4   ÚbufsizerÜ   r   r°   s         r   Úsock_recvfromÚ#BaseSelectorEventLoop.sock_recvfrom¼  sÒ   é € ô 	×%Ò% dÔ+Ø�;�;˜4Ÿ?™?Ó,°Ó1ÜÐ>Ó?Ð?ð	Ø—=‘= Ó)Ð)øÜÔ!1Ð2ó 	Ùð	úà× Ñ Ó"ˆØ�[‰[‹]ˆØ×$Ñ$ RÔ(Ø×!Ñ! "×&9Ñ&9¸3ÀgÓNˆØ×ÑÜ×Ò˜d×2Ñ2°BÑFô	Hà�yˆyÐùrß   c                 ó  • UR                  5       (       a  g  UR                  U5      nUR                  U5        g ! [        [        4 a     g [
        [        4 a    e [         a  nUR                  U5         S nAg S nAff = fr1   )	ræ   rõ   rç   rj   ri   r˜   r™   r—   rè   )r*   rÜ   r4   r÷   Úresultr’   s         r   rö   Ú$BaseSelectorEventLoop._sock_recvfromÓ  sx   € ð �8‰8�:‰:Øð		#Ø—]‘] 7Ó+ˆFð �N‰N˜6Õ"øô  Ô!1Ð2ó 	ÙÜÔ-Ð.ó 	ØÜó 	#Ø×Ñ˜c×"Ñ"ûð	#úrê   c              ƒ   ó  #   • [         R                  " U5        U R                  (       a  UR                  5       S:w  a  [	        S5      eU(       d  [        U5      n UR                  X#5      $ ! [        [        4 a     Of = fU R                  5       nUR                  5       nU R                  U5        U R                  XPR                  XAUU5      nUR                  [        R                   " U R"                  XVS95        UI Sh  v•N  $ 7f)zŸReceive data from the socket.

The received data is written into *buf* (a writable buffer).
The return value is a tuple of (number of bytes written, address).
r   rÒ   rÓ   N)r   rÔ   rr   rÕ   r¡   ÚlenÚrecvfrom_intorj   ri   r–   rU   r2   r^   Ú_sock_recvfrom_intor×   rØ   rÙ   rÚ   )r*   r4   rî   rò   rÜ   r   r°   s          r   Úsock_recvfrom_intoÚ(BaseSelectorEventLoop.sock_recvfrom_intoä  så   é € ô 	×%Ò% dÔ+Ø�;�;˜4Ÿ?™?Ó,°Ó1ÜÐ>Ó?Ð?ÞÜ˜“XˆFð	Ø×%Ñ% cÓ2Ð2øÜÔ!1Ð2ó 	Ùð	úà× Ñ Ó"ˆØ�[‰[‹]ˆØ×$Ñ$ RÔ(Ø×!Ñ! "×&>Ñ&>ÀÈ3Ø"(ó*ˆà×ÑÜ×Ò˜d×2Ñ2°BÑFô	Hà�yˆyÐùs7   ‚ADÁA- Á,DÁ-B Á=DÁ?B Â BDÄDÄDc                 ó  • UR                  5       (       a  g  UR                  X45      nUR                  U5        g ! [        [        4 a     g [
        [        4 a    e [         a  nUR                  U5         S nAg S nAff = fr1   )	ræ   rÿ   rç   rj   ri   r˜   r™   r—   rè   )r*   rÜ   r4   rî   r÷   rû   r’   s          r   r   Ú)BaseSelectorEventLoop._sock_recvfrom_intoý  sz   € ð �8‰8�:‰:Øð		#Ø×'Ñ'¨Ó5ˆFð �N‰N˜6Õ"øô  Ô!1Ð2ó 	ÙÜÔ-Ð.ó 	ØÜó 	#Ø×Ñ˜c×"Ñ"ûð	#úrê   c           	   ƒ   ó0  #   • [         R                  " U5        U R                  (       a  UR                  5       S:w  a  [	        S5      e UR                  U5      nU[        U5      :X  a  gU R                  5       nUR                  5       nU R                  U5        U R                  XPR                  XA[        U5      U/5      nUR                  [         R"                  " U R$                  XVS95        UI Sh  v•N $ ! [        [        4 a    Sn Nµf = f N7f)áj  Send data to the socket.

The socket must be connected to a remote socket. This method continues
to send data from data until either all data has been sent or an
error occurs. None is returned on success. On error, an exception is
raised, and there is no way to determine how much data, if any, was
successfully processed by the receiving end of the connection.
r   rÒ   NrÓ   )r   rÔ   rr   rÕ   r¡   rp   rj   ri   rþ   r–   rU   r2   r»   Ú_sock_sendallÚ
memoryviewr×   rØ   rÙ   Ú_sock_write_done)r*   r4   rd   rÛ   rÜ   r   r°   s          r   Úsock_sendallÚ"BaseSelectorEventLoop.sock_sendall  só   é € ô 	×%Ò% dÔ+Ø�;�;˜4Ÿ?™?Ó,°Ó1ÜÐ>Ó?Ð?ð	Ø—	‘	˜$“ˆAð ”�D“	‹>àà× Ñ Ó"ˆØ�[‰[‹]ˆØ×$Ñ$ RÔ(à×!Ñ! "×&8Ñ&8¸#Ü",¨TÓ"2°Q°Có9ˆà×ÑÜ×Ò˜d×3Ñ3°RÑGô	Ià�yÐøô  Ô!1Ð2ó 	ØŠAð	úñ ùs7   ‚ADÁ
C< ÁBDÃ7DÃ8DÃ<DÄDÄDÄDc                 óF  • UR                  5       (       a  g US   n UR                  X5S  5      nXV-  nU[        U5      :X  a  UR                  S 5        g XTS'   g ! [        [        4 a     g [        [
        4 a    e [         a  nUR                  U5         S nAg S nAff = f©Nr   )
ræ   rp   rj   ri   r˜   r™   r—   rè   rþ   rç   )r*   rÜ   r4   ÚviewÚposÚstartrÛ   r’   s           r   r  Ú#BaseSelectorEventLoop._sock_sendall-  s�   € Ø�8‰8�:‰:àØ�A‘ˆð	Ø—	‘	˜$˜v˜,Ó'ˆAð 	‰
ˆà”C˜“IÓØ�N‰N˜4Õ à�ŠFøô  Ô!1Ð2ó 	ÙÜÔ-Ð.ó 	ØÜó 	Ø×Ñ˜cÔ"Üûð	ús   �A ÁB Á,B ÂBÂB c              ƒ   óö  #   • [         R                  " U5        U R                  (       a  UR                  5       S:w  a  [	        S5      e UR                  X#5      $ ! [        [        4 a     Of = fU R                  5       nUR                  5       nU R                  U5        U R                  XPR                  XAUU5      nUR                  [        R                  " U R                   XVS95        UI Sh  v•N  $ 7f)r  r   rÒ   rÓ   N)r   rÔ   rr   rÕ   r¡   Úsendtorj   ri   r–   rU   r2   r»   Ú_sock_sendtor×   rØ   rÙ   r	  )r*   r4   rd   rG   rÜ   r   r°   s          r   Úsock_sendtoÚ!BaseSelectorEventLoop.sock_sendtoC  sÙ   é € ô 	×%Ò% dÔ+Ø�;�;˜4Ÿ?™?Ó,°Ó1ÜÐ>Ó?Ð?ð	Ø—;‘;˜tÓ-Ð-øÜÔ!1Ð2ó 	Ùð	úð × Ñ Ó"ˆØ�[‰[‹]ˆØ×$Ñ$ RÔ(à×!Ñ! "×&7Ñ&7¸ÀDØ")ó+ˆà×ÑÜ×Ò˜d×3Ñ3°RÑGô	Ià�yˆyÐùs7   ‚AC9Á
A ÁC9ÁA.Á+C9Á-A.Á.BC9Ã3C6Ã4C9c                 ó  • UR                  5       (       a  g  UR                  USU5      nUR                  U5        g ! [        [        4 a     g [
        [        4 a    e [         a  nUR                  U5         S nAg S nAff = fr  )	ræ   r  rç   rj   ri   r˜   r™   r—   rè   )r*   rÜ   r4   rd   rG   rÛ   r’   s          r   r  Ú"BaseSelectorEventLoop._sock_sendto^  sz   € Ø�8‰8�:‰:àð		Ø—‘˜D ! WÓ-ˆAð �N‰N˜1Õøô  Ô!1Ð2ó 	ÙÜÔ-Ð.ó 	ØÜó 	#Ø×Ñ˜c×"Ñ"ûð	#ús   ˜= ½BÁBÁ(A>Á>Bc              ƒ   ó0  #   • [         R                  " U5        U R                  (       a  UR                  5       S:w  a  [	        S5      eUR
                  [        R                  :X  d3  [         R                  (       a`  UR
                  [        R                  :X  aB  U R                  X!R
                  UR                  UR                  U S9I Sh  v•N nUS   u        pBU R                  5       nU R                  XQU5         UI Sh  v•N Sn$  N= N! Snf = f7f)zDConnect to a remote socket at address.

This method is a coroutine.
r   rÒ   )ÚfamilyÚtypeÚprotoÚloopN)r   rÔ   rr   rÕ   r¡   r  r[   ÚAF_INETÚ	_HAS_IPv6ÚAF_INET6Ú_ensure_resolvedr  r  r–   Ú_sock_connect)r*   r4   rG   Úresolvedr�   rÜ   s         r   Úsock_connectÚ"BaseSelectorEventLoop.sock_connectm  sã   é € ô
 	×%Ò% dÔ+Ø�;�;˜4Ÿ?™?Ó,°Ó1ÜÐ>Ó?Ð?à�;‰;œ&Ÿ.™.Ó(Ü×%×%¨$¯+©+¼¿¹Ó*HØ!×2Ñ2Ø§¡°$·)±)À4Ç:Á:Øð 3ð ÷ ˆHð #+¨1¡+ÑˆAˆq�!�Qà× Ñ Ó"ˆØ×Ñ˜3 gÔ.ð	Ø—9ð ‰Cññ øð ‰Cüs<   ‚CDÃDÃ0DÃ?D ÄDÄD ÄDÄD ÄDÄDc           	      óÆ  • UR                  5       n UR                  U5        UR                  S 5        S ng ! [        [        4 a_    U R                  U5        U R                  X@R                  XU5      nUR                  [        R                  " U R                  XES95         Nq[        [        4 a    e [         a  nUR                  U5         S nAN S nAff = f! S nf = f)NrÓ   )rU   Úconnectrç   rj   ri   r2   r»   Ú_sock_connect_cbr×   rØ   rÙ   r	  r˜   r™   r—   rè   )r*   rÜ   r4   rG   r   r°   r’   s          r   r"  Ú#BaseSelectorEventLoop._sock_connect†  sÎ   € Ø�[‰[‹]ˆð	Ø�L‰L˜Ô!ð  �N‰N˜4Ô à‰Cøô#  Ô!1Ð2ó 		Mð
 ×(Ñ(¨Ô,Ø×%Ñ%Ø×)Ñ)¨3°gó?ˆFà×!Ñ!Ü×!Ò! $×"7Ñ"7¸ÑKöMäÔ-Ð.ó 	ØÜó 	#Ø×Ñ˜c×"Ñ"ûð	#ûð
 ‰Cús9   ’7 £C ·A,CÂ#C Â%CÂ>CÃC ÃCÃC ÃC c                 óX   • Ub  UR                  5       (       d  U R                  U5        g g r1   )rá   rÏ   râ   s       r   r	  Ú&BaseSelectorEventLoop._sock_write_done�  rä   r,   c                 ó€  • UR                  5       (       a  g  UR                  [        R                  [        R                  5      nUS:w  a  [        USU 35      e UR                  S 5        S ng ! [        [        4 a     N[        [        4 a    e [         a  nUR                  U5         S nANDS nAff = f! S nf = f)Nr   zConnect call failed )ræ   Ú
getsockoptr[   Ú
SOL_SOCKETÚSO_ERRORrq   rç   rj   ri   r˜   r™   r—   rè   )r*   rÜ   r4   rG   Úerrr’   s         r   r(  Ú&BaseSelectorEventLoop._sock_connect_cb¡  s°   € Ø�8‰8�:‰:Øð	Ø—/‘/¤&×"3Ñ"3´V·_±_ÓEˆCØ�a‹xä˜cÐ%9¸'¸Ð#CÓDÐDð ð �N‰N˜4Ô à‰Cøô  Ô!1Ð2ó 	áÜÔ-Ð.ó 	ØÜó 	#Ø×Ñ˜c×"Ñ"ûð	#ûð
 ‰Cús<   ˜AA0 ÁB9 Á0B6Â B9 ÂB6ÂB1Â,B9 Â1B6Â6B9 Â9B=c              ƒ   óð   #   • [         R                  " U5        U R                  (       a  UR                  5       S:w  a  [	        S5      eU R                  5       nU R                  X!5        UI Sh  v•N $  N7f)a/  Accept a connection.

The socket must be bound to an address and listening for connections.
The return value is a pair (conn, address) where conn is a new socket
object usable to send and receive data on the connection, and address
is the address bound to the socket on the other end of the connection.
r   rÒ   N)r   rÔ   rr   rÕ   r¡   r–   Ú_sock_accept)r*   r4   rÜ   s      r   Úsock_acceptÚ!BaseSelectorEventLoop.sock_accept¶  s\   é € ô 	×%Ò% dÔ+Ø�;�;˜4Ÿ?™?Ó,°Ó1ÜÐ>Ó?Ð?Ø× Ñ Ó"ˆØ×Ñ˜#Ô$Ø�yÐ‰yùs   ‚A-A6Á/A4Á0A6c           	      óØ  • UR                  5       n UR                  5       u  pEUR                  S5        UR                  XE45        g ! [        [
        4 a^    U R                  U5        U R                  X0R                  X5      nUR                  [        R                  " U R                  X6S95         g [        [        4 a    e [         a  nUR!                  U5         S nAg S nAff = f)NFrÓ   )rU   r‚   r]   rç   rj   ri   r2   r^   r3  r×   rØ   rÙ   rÚ   r˜   r™   r—   rè   )r*   rÜ   r4   r   r�   rG   r°   r’   s           r   r3  Ú"BaseSelectorEventLoop._sock_acceptÅ  sË   € Ø�[‰[‹]ˆð	,Ø ŸK™K›M‰MˆDØ×Ñ˜UÔ#ð �N‰N˜D˜?Õ+øô  Ô!1Ð2ó 	LØ×(Ñ(¨Ô,Ø×%Ñ% b×*;Ñ*;¸SÓGˆFØ×!Ñ!Ü×!Ò! $×"6Ñ"6¸ÑJöLäÔ-Ð.ó 	ØÜó 	#Ø×Ñ˜c×"Ñ"ûð	#ús   ’#A ÁA+C)Â5C)ÃC$Ã$C)c              ƒ   ó   #   • U R                   UR                  	 UR                  5       nUR                  5         UR	                  5       I S h  v•N    U R                  UR                  X#USS9I S h  v•N UR                  5         U(       a  UR                  5         XR                   UR                  '   $  Nh NE! UR                  5         U(       a  UR                  5         XR                   UR                  '   f = f7f)NF)Úfallback)	r)   Ú_sock_fdÚ
is_readingÚpause_readingÚ_make_empty_waiterÚsock_sendfileÚ_sockÚ_reset_empty_waiterÚresume_reading)r*   ÚtranspÚfileÚoffsetÚcountrA  s         r   Ú_sendfile_nativeÚ&BaseSelectorEventLoop._sendfile_nativeÖ  sÖ   é € Ø×Ñ˜VŸ_™_Ð-Ø×*Ñ*Ó,ˆØ×ÑÔØ×'Ñ'Ó)×)Ð)ð	7Ø×+Ñ+¨F¯L©L¸$ÈØ5:ð ,ð <÷ <ð ×&Ñ&Ô(ÞØ×%Ñ%Ô'Ø06×Ñ˜VŸ_™_Ò-ñ 	*ñ<øð ×&Ñ&Ô(ÞØ×%Ñ%Ô'Ø06×Ñ˜VŸ_™_Ò-üs>   ‚AC>ÁB6ÁC>ÁB: Á2B8Á3B: Á6AC>Â8B: Â:AC;Ã;C>c                 ó–  • U HÃ  u  p#UR                   UR                  snu  pVU[        R                  -  (       a7  Ub4  UR                  (       a  U R                  U5        OU R                  U5        U[        R                  -  (       d  M‰  Uc  MŽ  UR                  (       a  U R                  U5        M²  U R                  U5        MÅ     g r1   )	Úfileobjrd   r    rª   Ú
_cancelledrS   Ú_add_callbackrº   r¿   )r*   Ú
event_listr   r±   rI  r²   r³   s          r   Ú_process_eventsÚ%BaseSelectorEventLoop._process_eventsä  s˜   € Û#‰IˆCØ(+¯©°S·X±XÐ%ˆGÑ%�fØ”i×*Ñ*×*¨vÑ/AØ×$×$Ø×'Ñ'¨Õ0à×&Ñ& vÔ.Ø”i×+Ñ+×+Ñ+°Ó0BØ×$×$Ø×'Ñ'¨Ö0à×&Ñ& vÖ.ò $r,   c                 ób   • U R                  UR                  5       5        UR                  5         g r1   )rS   rU   rO   )r*   r4   s     r   Ú_stop_servingÚ#BaseSelectorEventLoop._stop_servingò  s   € Ø×Ñ˜DŸK™K›MÔ*Ø�
‰
�r,   )rV   r%   rT   r)   r1   ©NNN)r   )6r$   Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r7   r   ÚSSL_HANDSHAKE_TIMEOUTÚSSL_SHUTDOWN_TIMEOUTrC   rH   rO   rN   r&   re   r_   rt   r{   rx   rƒ   r2   r^   rS   r»   r¿   rÃ   rÈ   rÌ   rÏ   rÝ   rÚ   rÖ   rï   rí   rø   rö   r  r   r
  r  r  r  r$  r"  r	  r(  r4  r3  rF  rM  rP  Ú__static_attributes__Ú__classcell__©r#   s   @r   r   r   5   st  ø† ñ÷
9ð7Ø%)°$ö7ð 9=ð+à °$Ø˜tØ"+×"AÑ"AØ!*×!?Ñ!?ö+ð& CGôBõ	"ò òEòò
ò,ð& #'¨t¸SØ-6×-LÑ-LØ,5×,JÑ,JôFð  D°#Ø"+×"AÑ"AØ!*×!?Ñ!?ô	,)ð`  DØ"+×"AÑ"AØ!*×!?Ñ!?ô	-5ò^"òòò&òò*.ò
'ò
.ò
'ò
ô,#ò!ò ò*#ò"ò.#ô"ò2#ò"ò>ò,ò6òò2ô.#òò*ò,ò"7ò/÷ð r,   r   c                   ó¬   ^ • \ rS rSrSrSrSU 4S jjrS rS rS r	S r
S	 rS
 rS rS rS r\R"                  4S jrSS jrS rS rS rS rSrU =r$ )Ú_SelectorTransporti÷  i   Nc                 óâ  >• [         TU ]  XA5        [        R                  " U5      U R                  S'    UR                  5       U R                  S'   SU R                  ;  a   UR                  5       U R                  S'   X l
        UR                  5       U l        SU l        U R                  U5        XPl        [         R"                  " 5       U l        SU l        SU l        SU l        U R                  b  U R                  R-                  U 5        XR.                  U R                  '   g ! [         a    S U R                  S'    Nòf = f! [        R                   a    S U R                  S'    Níf = f)Nr[   Úsocknamer~   Fr   )r   r   r   rŒ   Ú_extraÚgetsocknamerq   Úgetpeernamer[   Úerrorr?  rU   r:  Ú_protocol_connectedÚset_protocolÚ_serverÚcollectionsÚdequeÚ_bufferÚ
_conn_lostÚ_closingÚ_pausedÚ_attachr)   )r*   r  r4   r5   r.   r/   r#   s         €r   r   Ú_SelectorTransport.__init__  s2  ø€ Ü‰Ñ˜Ô%Ü &× 6Ò 6°tÓ <ˆ�‰�HÑð	+Ø&*×&6Ñ&6Ó&8ˆD�K‰K˜
Ñ#ð ˜TŸ[™[Ó(ð/Ø*.×*:Ñ*:Ó*<�—‘˜JÑ'ð Œ
ØŸ™›ˆŒà#(ˆÔ Ø×Ñ˜(Ô#àŒÜ"×(Ò(Ó*ˆŒØˆŒØˆŒØˆŒà�<‰<Ñ#Ø�L‰L× Ñ  Ô&Ø*.×Ñ˜Ÿ™Ò'øô+ ó 	+Ø&*ˆD�K‰K˜
Ó#ð	+ûô
 —<‘<ó /Ø*.�—‘˜JÓ'ð/ús#   µD) Á#E Ä)EÅEÅ#E.Å-E.c                 ó&  • U R                   R                  /nU R                  c  UR                  S5        O"U R                  (       a  UR                  S5        UR                  SU R
                   35        U R                  bï  U R                  R                  5       (       dÐ  [        U R                  R                  U R
                  [        R                  5      nU(       a  UR                  S5        OUR                  S5        [        U R                  R                  U R
                  [        R                  5      nU(       a  SnOSnU R                  5       nUR                  SU S	U S
35        SR                  SR                  U5      5      $ )NÚclosedÚclosingzfd=zread=pollingz	read=idleÚpollingÚidlezwrite=<z
, bufsize=Ú>z<{}>Ú )r#   r$   r?  Úappendrk  r:  Ú_looprM   r   r%   r    rª   rº   Úget_write_buffer_sizeÚformatÚjoin)r*   Úinforr  Ústater÷   s        r   Ú__repr__Ú_SelectorTransport.__repr__  s'  € Ø—‘×'Ñ'Ð(ˆØ�:‰:ÑØ�K‰K˜Õ!Ø�]�]Ø�K‰K˜	Ô"Ø�‰�c˜$Ÿ-™-˜Ð)Ô*à�:‰:Ñ!¨$¯*©*×*>Ñ*>×*@Ñ*@Ü*¨4¯:©:×+?Ñ+?Ø+/¯=©=¼)×:NÑ:NóPˆGæØ—‘˜NÕ+à—‘˜KÔ(ä*¨4¯:©:×+?Ñ+?Ø+/¯=©=Ü+4×+@Ñ+@óBˆGö Ø!‘à�à×0Ñ0Ó2ˆGØ�K‰K˜' % ¨
°7°)¸1Ð=Ô>Ø�}‰}˜SŸX™X d›^Ó,Ð,r,   c                 ó&   • U R                  S 5        g r1   )Ú_force_closerX   s    r   ÚabortÚ_SelectorTransport.abort9  s   € Ø×Ñ˜$Õr,   c                 ó   • Xl         SU l        g ©NT)Ú	_protocolrd  )r*   r5   s     r   re  Ú_SelectorTransport.set_protocol<  s   € Ø!ŒØ#'ˆÕ r,   c                 ó   • U R                   $ r1   )r…  rX   s    r   Úget_protocolÚ_SelectorTransport.get_protocol@  s   € Ø�~‰~Ðr,   c                 ó   • U R                   $ r1   )rk  rX   s    r   r£   Ú_SelectorTransport.is_closingC  s   € Ø�}‰}Ðr,   c                 ó\   • U R                  5       (       + =(       a    U R                  (       + $ r1   )r£   rl  rX   s    r   r;  Ú_SelectorTransport.is_readingF  s   € Ø—?‘?Ó$Ô$×9¨T¯\©\Ô)9Ð9r,   c                 óö   • U R                  5       (       d  g SU l        U R                  R                  U R                  5        U R                  R                  5       (       a  [        R                  " SU 5        g g )NTz%r pauses reading)r;  rl  rw  rS   r:  Ú	get_debugr   r"   rX   s    r   r<  Ú _SelectorTransport.pause_readingI  sV   € Ø�‰× Ñ ØØˆŒØ�
‰
×!Ñ! $§-¡-Ô0Ø�:‰:×Ñ×!Ñ!Ü�LŠLÐ,¨dÕ3ð "r,   c                 ó  • U R                   (       d  U R                  (       d  g SU l        U R                  U R                  U R                  5        U R
                  R                  5       (       a  [        R                  " SU 5        g g )NFz%r resumes reading)	rk  rl  r^   r:  Ú_read_readyrw  r�  r   r"   rX   s    r   rA  Ú!_SelectorTransport.resume_readingQ  sZ   € Ø�=�= §§ØØˆŒØ×Ñ˜Ÿ™¨×(8Ñ(8Ô9Ø�:‰:×Ñ×!Ñ!Ü�LŠLÐ-¨tÕ4ð "r,   c                 ód  • U R                   (       a  g SU l         U R                  R                  U R                  5        U R                  (       da  U =R
                  S-  sl        U R                  R                  U R                  5        U R                  R                  U R                  S 5        g g ©NTr   )	rk  rw  rS   r:  ri  rj  r¿   Ú	call_soonÚ_call_connection_lostrX   s    r   rO   Ú_SelectorTransport.closeY  ss   € Ø�=�=ØØˆŒØ�
‰
×!Ñ! $§-¡-Ô0Ø�|�|Ø�OŠO˜qÑ �OØ�J‰J×%Ñ% d§m¡mÔ4Ø�J‰J× Ñ  ×!;Ñ!;¸TÕBð r,   c                 óÆ   • U R                   bT  U" SU < 3[        U S9  U R                   R                  5         U R                  b  U R                  R	                  U 5        g g g )Nzunclosed transport )Úsource)r?  ÚResourceWarningrO   rf  Ú_detach)r*   Ú_warns     r   Ú__del__Ú_SelectorTransport.__del__c  sV   € Ø�:‰:Ñ!ÙÐ'¨¡xÐ0´/È$ÒOØ�J‰J×ÑÔØ�|‰|Ñ'Ø—‘×$Ñ$ TÕ*ð (ð "r,   c                 ó  • [        U[        5      (       a6  U R                  R                  5       (       a  [        R
                  " SXSS9  O*U R                  R                  UUU U R                  S.5        U R                  U5        g )Nz%r: %sTrn   )r   r€   r•   r5   )	r�   rq   rw  r�  r   r"   r‹   r…  r€  )r*   r’   r   s      r   Ú_fatal_errorÚ_SelectorTransport._fatal_errorj  sj   € ä�cœ7×#Ñ#Ø�z‰z×#Ñ#×%Ñ%Ü—’˜X t¸tÒDøà�J‰J×-Ñ-Ø"Ø Ø!Ø ŸN™Nñ	/ô ð 	×Ñ˜#Õr,   c                 ó¸  • U R                   (       a  g U R                  (       a?  U R                  R                  5         U R                  R	                  U R
                  5        U R                  (       d,  SU l        U R                  R                  U R
                  5        U =R                   S-  sl         U R                  R                  U R                  U5        g r•  )
rj  ri  Úclearrw  r¿   r:  rk  rS   r–  r—  )r*   r’   s     r   r€  Ú_SelectorTransport._force_closex  s…   € Ø�?�?ØØ�<�<Ø�L‰L×ÑÔ Ø�J‰J×%Ñ% d§m¡mÔ4Ø�}�}Ø ˆDŒMØ�J‰J×%Ñ% d§m¡mÔ4Ø�Š˜1Ñ�Ø�
‰
×Ñ˜T×7Ñ7¸Õ=r,   c                 óÄ  •  U R                   (       a  U R                  R                  U5        U R                  R	                  5         S U l        S U l        S U l        U R                  nUb  UR                  U 5        S U l        g g ! U R                  R	                  5         S U l        S U l        S U l        U R                  nUb  UR                  U 5        S U l        f f = fr1   )rd  r…  Úconnection_lostr?  rO   rw  rf  rœ  )r*   r’   r/   s      r   r—  Ú(_SelectorTransport._call_connection_lost„  s¾   € ð	$Ø×'×'Ø—‘×.Ñ.¨sÔ3à�J‰J×ÑÔØˆDŒJØ!ˆDŒNØˆDŒJØ—\‘\ˆFØÑ!Ø—‘˜tÔ$Ø#�•ð "øð �J‰J×ÑÔØˆDŒJØ!ˆDŒNØˆDŒJØ—\‘\ˆFØÑ!Ø—‘˜tÔ$Ø#�•ð "ús   ‚,B ÂACc                 óH   • [        [        [        U R                  5      5      $ r1   )ÚsumÚmaprþ   ri  rX   s    r   rx  Ú(_SelectorTransport.get_write_buffer_size’  s   € Ü”3”s˜DŸL™LÓ)Ó*Ð*r,   c                 ój   • U R                  5       (       d  g U R                  R                  " X/UQ76   g r1   )r;  rw  r^   rÂ   s       r   r^   Ú_SelectorTransport._add_reader•  s)   € Ø�‰× Ñ ØØ�
‰
×Ò˜rÐ3¨dÔ3r,   )
ri  rk  rj  rw  rl  r…  rd  rf  r?  r:  )NN)zFatal error on transport)r$   rS  rT  rU  Úmax_sizer?  r   r}  r�  re  rˆ  r£   r;  r<  rA  rO   ÚwarningsÚwarnrž  r¡  r€  r—  rx  r^   rY  rZ  r[  s   @r   r]  r]  ÷  sp   ø† ð €Hð
 €E÷/ò8-ò8 ò(òòò:ò4ò5òCð %ŸM™Mô +ôò
>ò$ò+÷4ð 4r,   r]  c                   óä   ^ • \ rS rSrSr\R                  R                  r  SU 4S jjr	U 4S jr
S rS rS rS	 rS
 rS rS rS\SS4S jrS rS rS rS rU 4S jrS rS rU 4S jrSrU =r$ )r3   i›  TNc                 ó"  >• S U l         [        TU ]	  XX5U5        SU l        S U l        [
        (       a  U R                  U l        OU R                  U l        [        R                  " U R                  5        U R                  R                  U R                  R                  U 5        U R                  R                  U R                   U R"                  U R$                  5        Ub,  U R                  R                  [&        R(                  US 5        g g r   )Ú_read_ready_cbr   r   Ú_eofÚ_empty_waiterÚ_HAS_SENDMSGÚ_write_sendmsgÚ_write_readyÚ_write_sendr   Ú_set_nodelayr?  rw  r–  r…  Úconnection_mader^   r:  r’  r   Ú_set_result_unless_cancelled)r*   r  r4   r5   r6   r.   r/   r#   s          €r   r   Ú!_SelectorSocketTransport.__init__   sÓ   ø€ ð #ˆÔÜ‰Ñ˜ X°fÔ=ØˆŒ	Ø!ˆÔßŠ<Ø $× 3Ñ 3ˆDÕà $× 0Ñ 0ˆDÔô 	× Ò  §¡Ô,à�
‰
×Ñ˜TŸ^™^×;Ñ;¸TÔBà�
‰
×Ñ˜T×-Ñ-Ø!Ÿ]™]¨D×,<Ñ,<ô	>àÑà�J‰J× Ñ ¤×!EÑ!EØ!'¨õ/ð r,   c                 ó¨   >• [        U[        R                  5      (       a  U R                  U l        OU R
                  U l        [        TU ]  U5        g r1   )r�   r	   ÚBufferedProtocolÚ_read_ready__get_bufferr´  Ú_read_ready__data_receivedr   re  )r*   r5   r#   s     €r   re  Ú%_SelectorSocketTransport.set_protocol¹  s?   ø€ Ü�h¤	× :Ñ :×;Ñ;Ø"&×">Ñ">ˆDÕà"&×"AÑ"AˆDÔä‰Ñ˜XÕ&r,   c                 ó$   • U R                  5         g r1   )r´  rX   s    r   r’  Ú$_SelectorSocketTransport._read_readyÁ  s   € Ø×ÑÕr,   c                 ó°  • U R                   (       a  g  U R                  R                  S5      n[        U5      (       d  [	        S5      e  U R                  R                  U5      nU(       d  U R                  5         g  U R                  R                  U5        g ! [
        [        4 a    e [         a  nU R                  US5         S nAg S nAff = f! [        [        4 a     g [
        [        4 a    e [         a  nU R                  US5         S nAg S nAff = f! [
        [        4 a    e [         a  nU R                  US5         S nAg S nAff = f)Néÿÿÿÿz%get_buffer() returned an empty bufferz/Fatal error: protocol.get_buffer() call failed.ú$Fatal read error on socket transportz3Fatal error: protocol.buffer_updated() call failed.)rj  r…  Ú
get_bufferrþ   rL   r˜   r™   r—   r¡  r?  rì   rj   ri   Ú_read_ready__on_eofÚbuffer_updated)r*   rî   r’   rò   s       r   rÁ  Ú0_SelectorSocketTransport._read_ready__get_bufferÄ  sE  € Ø�?�?Øð		Ø—.‘.×+Ñ+¨BÓ/ˆCÜ�s—8‘8Ü"Ð#JÓKÐKð ð	Ø—Z‘Z×)Ñ)¨#Ó.ˆFö Ø×$Ñ$Ô&Øð	LØ�N‰N×)Ñ)¨&Õ1øô- Ô-Ð.ó 	ØÜó 	Ø×ÑØÐFôHäûð	ûô  Ô!1Ð2ó 	ÙÜÔ-Ð.ó 	ØÜó 	Ø×Ñ˜cÐ#IÔJÜûð	ûô Ô-Ð.ó 	ØÜó 	LØ×ÑØÐJ÷Lñ Lûð	LúsM   ”6B ÁC Â D ÂCÂ6CÃCÃDÃ'DÄ DÄDÄEÄ9EÅEc                 óâ  • U R                   (       a  g  U R                  R                  U R                  5      nU(       d  U R                  5         g  U R                  R                  U5        g ! [        [
        4 a     g [        [        4 a    e [         a  nU R                  US5         S nAg S nAff = f! [        [        4 a    e [         a  nU R                  US5         S nAg S nAff = f)NrÈ  z2Fatal error: protocol.data_received() call failed.)rj  r?  rh   r¯  rj   ri   r˜   r™   r—   r¡  rÊ  r…  Údata_received)r*   rd   r’   s      r   rÂ  Ú3_SelectorSocketTransport._read_ready__data_receivedé  sÚ   € Ø�?�?Øð	Ø—:‘:—?‘? 4§=¡=Ó1ˆDö Ø×$Ñ$Ô&Øð	KØ�N‰N×(Ñ(¨Õ.øô  Ô!1Ð2ó 	ÙÜÔ-Ð.ó 	ØÜó 	Ø×Ñ˜cÐ#IÔJÜûð	ûô Ô-Ð.ó 	ØÜó 	KØ×ÑØÐI÷Kñ Kûð	Kús5   ”%A. ÁB8 Á.B5Â B5ÂB0Â0B5Â8C.ÃC)Ã)C.c                 ó’  • U R                   R                  5       (       a  [        R                  " SU 5         U R                  R                  5       nU(       a&  U R                   R                  U R                  5        g U R                  5         g ! [        [        4 a    e [         a  nU R                  US5         S nAg S nAff = f)Nz%r received EOFz1Fatal error: protocol.eof_received() call failed.)rw  r�  r   r"   r…  Úeof_receivedr˜   r™   r—   r¡  rS   r:  rO   )r*   Ú	keep_openr’   s      r   rÊ  Ú,_SelectorSocketTransport._read_ready__on_eof  sœ   € Ø�:‰:×Ñ×!Ñ!Ü�LŠLÐ*¨DÔ1ð	ØŸ™×3Ñ3Ó5ˆIö ð �J‰J×%Ñ% d§m¡mÕ4à�J‰J�Løô Ô-Ð.ó 	ØÜó 	Ø×ÑØÐHôJäûð	ús   ¸B ÂCÂ*CÃCc                 óˆ  • [        U[        [        [        45      (       d"  [	        S[        U5      R                  < 35      eU R                  (       a  [        S5      eU R                  b  [        S5      eU(       d  g U R                  (       aJ  U R                  [        R                  :¼  a  [        R                  " S5        U =R                  S-  sl
        g U R                  (       dc   U R                   R#                  U5      n[        U5      US  nU(       d  g  U R0                  R3                  U R4                  U R6                  5        U R                  R9                  U5        U R;                  5         g ! [$        [&        4 a     Nn[(        [*        4 a    e [,         a  nU R/                  US5         S nAg S nAff = f)Nú/data argument must be a bytes-like object, not z%Cannot call write() after write_eof()z(unable to write; sendfile is in progressúsocket.send() raised exception.r   ú%Fatal write error on socket transport)r�   ÚbytesÚ	bytearrayr  r    r  r$   rµ  rL   r¶  rj  r   Ú!LOG_THRESHOLD_FOR_CONNLOST_WRITESr   Úwarningri  r?  rp   rj   ri   r˜   r™   r—   r¡  rw  r»   r:  r¹  rv  Ú_maybe_pause_protocol)r*   rd   rÛ   r’   s       r   ÚwriteÚ_SelectorSocketTransport.write  si  € Ü˜$¤¬	´:Ð >×?Ñ?Üð #Ü#'¨£:×#6Ñ#6Ñ"9ð;ó <ð <à�9�9ÜÐFÓGÐGØ×ÑÑ)ÜÐIÓJÐJÞØà�?�?Ø�‰¤)×"MÑ"MÓMÜ—’Ð@ÔAØ�OŠO˜qÑ �OØà�|�|ðØ—J‘J—O‘O DÓ)�ô " $Ó'¨¨Ð+�ÞØð ð �J‰J×"Ñ" 4§=¡=°$×2CÑ2CÔDð 	�‰×Ñ˜DÔ!Ø×"Ñ"Õ$øô! $Ô%5Ð6ó ÙÜÔ 1Ð2ó ØÜ ó Ø×!Ñ! #Ð'NÔOÜûðús   Ã,E: Å:GÆGÆ%F<Æ<Gc                 óL   • [         R                  " U R                  [        5      $ r1   )Ú	itertoolsÚisliceri  r   rX   s    r   Ú_get_sendmsg_bufferÚ,_SelectorSocketTransport._get_sendmsg_buffer>  s   € Ü×Ò §¡¬jÓ9Ð9r,   c                 óÔ  • U R                   (       d   S5       eU R                  (       a  g  U R                  R                  U R	                  5       5      nU R                  U5        U R                  5         U R                   (       d¬  U R                  R                  U R                  5        U R                  b  U R                  R                  S 5        U R                  (       a  U R                  S 5        g U R                  (       a*  U R                  R                  [         R"                  5        g g g ! [$        [&        4 a     g [(        [*        4 a    e [,         aˆ  nU R                  R                  U R                  5        U R                   R/                  5         U R1                  US5        U R                  b   U R                  R3                  U5         S nAg  S nAg S nAff = f©NzData should not be emptyr×  )ri  rj  r?  r   râ  Ú_adjust_leftover_bufferÚ_maybe_resume_protocolrw  r¿   r:  r¶  rç   rk  r—  rµ  Úshutdownr[   ÚSHUT_WRrj   ri   r˜   r™   r—   r¤  r¡  rè   )r*   rò   r’   s      r   r¸  Ú'_SelectorSocketTransport._write_sendmsgA  sh  € Ø�|�|Ð7Ð7Ó7ˆ|Ø�?�?Øð	8Ø—Z‘Z×'Ñ'¨×(@Ñ(@Ó(BÓCˆFØ×(Ñ(¨Ô0ð ×'Ñ'Ô)Ø—<—<Ø—
‘
×)Ñ)¨$¯-©-Ô8Ø×%Ñ%Ñ1Ø×&Ñ&×1Ñ1°$Ô7Ø—=—=Ø×.Ñ.¨tÕ4Ø—Y—YØ—J‘J×'Ñ'¬¯©Õ7ð ð  øô  Ô!1Ð2ó 	ÙÜÔ-Ð.ó 	ØÜó 	6Ø�J‰J×%Ñ% d§m¡mÔ4Ø�L‰L×ÑÔ Ø×Ñ˜cÐ#JÔKØ×!Ñ!Ñ-Ø×"Ñ"×0Ñ0°×5Ñ5ô .ûð		6ús   ¬:D4 Ä4G'ÅG'ÅA9G"Ç"G'rò   Úreturnc                 ó°   • U R                   nU(       aC  UR                  5       n[        U5      nXA::  a  X-  nOUR                  X1S  5        g U(       a  MB  g g r1   )ri  Úpopleftrþ   Ú
appendleft)r*   rò   ÚbufferÚbÚb_lens        r   ræ  Ú0_SelectorSocketTransport._adjust_leftover_buffer]  sK   € Ø—‘ˆÞØ—‘Ó ˆAÜ˜“FˆEØ‹Ø‘‘à×!Ñ! ! G *Ô-Ø÷ Šfr,   c                 ó"  • U R                   (       d   S5       eU R                  (       a  g  U R                   R                  5       nU R                  R	                  U5      nU[        U5      :w  a  U R                   R                  XS  5        U R                  5         U R                   (       d¬  U R                  R                  U R                  5        U R                  b  U R                  R                  S 5        U R                  (       a  U R                  S 5        g U R                  (       a*  U R                  R!                  ["        R$                  5        g g g ! [&        [(        4 a     g [*        [,        4 a    e [.         aˆ  nU R                  R                  U R                  5        U R                   R1                  5         U R3                  US5        U R                  b   U R                  R5                  U5         S nAg  S nAg S nAff = frå  )ri  rj  rí  r?  rp   rþ   rî  rç  rw  r¿   r:  r¶  rç   rk  r—  rµ  rè  r[   ré  rj   ri   r˜   r™   r—   r¤  r¡  rè   )r*   rï  rÛ   r’   s       r   rº  Ú$_SelectorSocketTransport._write_sendh  sƒ  € Ø�|�|Ð7Ð7Ó7ˆ|Ø�?�?Øð	8Ø—\‘\×)Ñ)Ó+ˆFØ—
‘
—‘ Ó'ˆAØ”C˜“KÓà—‘×'Ñ'¨¨r¨
Ô3ð ×'Ñ'Ô)Ø—<—<Ø—
‘
×)Ñ)¨$¯-©-Ô8Ø×%Ñ%Ñ1Ø×&Ñ&×1Ñ1°$Ô7Ø—=—=Ø×.Ñ.¨tÕ4Ø—Y—YØ—J‘J×'Ñ'¬¯©Õ7ð ð  øô  Ô!1Ð2ó 	ÙÜÔ-Ð.ó 	ØÜó 	6Ø�J‰J×%Ñ% d§m¡mÔ4Ø�L‰L×ÑÔ Ø×Ñ˜cÐ#JÔKØ×!Ñ!Ñ-Ø×"Ñ"×0Ñ0°×5Ñ5ô .ûð		6ús   ¬A!E ÅHÅ-HÆA9H	È	Hc                 óÎ   • U R                   (       d  U R                  (       a  g SU l        U R                  (       d*  U R                  R	                  [
        R                  5        g g r„  )rk  rµ  ri  r?  rè  r[   ré  rX   s    r   Ú	write_eofÚ"_SelectorSocketTransport.write_eof‡  s;   € Ø�=�=˜DŸIŸIØØˆŒ	Ø�|�|Ø�J‰J×Ñ¤§¡Õ/ð r,   c                 ó´  • U R                   (       a  [        S5      eU R                  b  [        S5      eU(       d  g U R                  R	                  U Vs/ s H  n[        U5      PM     sn5        U R                  5         U R                  (       aA  U R                  R                  U R                  U R                  5        U R                  5         g g s  snf )Nz*Cannot call writelines() after write_eof()z-unable to writelines; sendfile is in progress)rµ  rL   r¶  ri  Úextendr  r¹  rw  r»   r:  rÜ  )r*   Úlist_of_datard   s      r   Ú
writelinesÚ#_SelectorSocketTransport.writelinesŽ  s¡   € Ø�9�9ÜÐKÓLÐLØ×ÑÑ)ÜÐNÓOÐOÞØØ�‰×Ñ¹,ÓGº,°$œZ¨Ö-¹,ÑGÔHØ×ÑÔà�<�<Ø�J‰J×"Ñ" 4§=¡=°$×2CÑ2CÔDØ×&Ñ&Õ(ð ùò Hs   ÁCc                 ó   • gr„  rb   rX   s    r   Úcan_write_eofÚ&_SelectorSocketTransport.can_write_eofœ  s   € Ør,   c                 ó  >•  [         TU ]  U5        S U l        U R                  b%  U R                  R	                  [        S5      5        g g ! S U l        U R                  b%  U R                  R	                  [        S5      5        f f = f)NzConnection is closed by peer)r   r—  r¹  r¶  rè   ÚConnectionError)r*   r’   r#   s     €r   r—  Ú._SelectorSocketTransport._call_connection_lostŸ  sˆ   ø€ ð	EÜ‰GÑ)¨#Ô.à $ˆDÔØ×!Ñ!Ñ-Ø×"Ñ"×0Ñ0Ü#Ð$BÓCõEð .øð !%ˆDÔØ×!Ñ!Ñ-Ø×"Ñ"×0Ñ0Ü#Ð$BÓCõEð .ús   ƒA Á;Bc                 óà   • U R                   b  [        S5      eU R                  R                  5       U l         U R                  (       d  U R                   R                  S 5        U R                   $ )NzEmpty waiter is already set)r¶  rL   rw  r–   ri  rç   rX   s    r   r=  Ú+_SelectorSocketTransport._make_empty_waiter¨  sV   € Ø×ÑÑ)ÜÐ<Ó=Ð=Ø!ŸZ™Z×5Ñ5Ó7ˆÔØ�|�|Ø×Ñ×)Ñ)¨$Ô/Ø×!Ñ!Ð!r,   c                 ó   • S U l         g r1   )r¶  rX   s    r   r@  Ú,_SelectorSocketTransport._reset_empty_waiter°  s
   € Ø!ˆÕr,   c                 ó0   >• S U l         [        TU ]	  5         g r1   )r´  r   rO   rP   s    €r   rO   Ú_SelectorSocketTransport.close³  s   ø€ Ø"ˆÔÜ‰‰�r,   )r¶  rµ  r´  r¹  rR  )r$   rS  rT  rU  Ú_start_tls_compatibler   Ú_SendfileModeÚ
TRY_NATIVEÚ_sendfile_compatibler   re  r’  rÁ  rÂ  rÊ  rÝ  râ  r¸  rž   ræ  rº  rö  rû  rþ  r—  r=  r@  rO   rY  rZ  r[  s   @r   r3   r3   ›  s“   ø† à ÐØ$×2Ñ2×=Ñ=Ðà48Ø$(÷/õ2'òò#LòJKò2ò*%%òN:ò8ð8	¨cð 	°dô 	ò8ò>0ò)òõEò"ò"÷ó r,   r3   c                   ód   ^ • \ rS rSr\R
                  r  SU 4S jjrS rS r	S	S jr
S rSrU =r$ )
rF   i¸  c                 ót  >• [         TU ]  XX65        X@l        SU l        U R                  R                  U R                  R                  U 5        U R                  R                  U R                  U R                  U R                  5        Ub,  U R                  R                  [        R                  US 5        g g r  )r   r   Ú_addressÚ_buffer_sizerw  r–  r…  r¼  r^   r:  r’  r   r½  )r*   r  r4   r5   rG   r6   r.   r#   s          €r   r   Ú#_SelectorDatagramTransport.__init__¼  s�   ø€ ä‰Ñ˜ XÔ5ØŒØˆÔØ�
‰
×Ñ˜TŸ^™^×;Ñ;¸TÔBà�
‰
×Ñ˜T×-Ñ-Ø!Ÿ]™]¨D×,<Ñ,<ô	>àÑà�J‰J× Ñ ¤×!EÑ!EØ!'¨õ/ð r,   c                 ó   • U R                   $ r1   )r  rX   s    r   rx  Ú0_SelectorDatagramTransport.get_write_buffer_sizeÊ  s   € Ø× Ñ Ð r,   c                 óœ  • U R                   (       a  g  U R                  R                  U R                  5      u  pU R                  R                  X5        g ! [        [        4 a     g [         a%  nU R                  R                  U5         S nAg S nAf[        [        4 a    e [         a  nU R                  US5         S nAg S nAff = f)Nz&Fatal read error on datagram transport)rj  r?  rõ   r¯  r…  Údatagram_receivedrj   ri   rq   Úerror_receivedr˜   r™   r—   r¡  ©r*   rd   r‘   r’   s       r   r’  Ú&_SelectorDatagramTransport._read_readyÍ  s§   € Ø�?�?Øð	9ØŸ™×,Ñ,¨T¯]©]Ó;‰JˆDð �N‰N×,Ñ,¨TÕ8øô  Ô!1Ð2ó 	ÙÜó 	/Ø�N‰N×)Ñ)¨#×.Ñ.ûÜÔ-Ð.ó 	ØÜó 	MØ×Ñ˜cÐ#K×LÑLûð	Mús)   ”'A ÁCÁ)	CÁ2BÂCÂ/CÃCc                 ó¦  • [        U[        [        [        45      (       d"  [	        S[        U5      R                  < 35      eU R                  (       a6  US U R                  4;  a  [        SU R                   35      eU R                  nU R                  (       a[  U R                  (       aJ  U R                  [        R                  :¼  a  [        R                  " S5        U =R                  S-  sl	        g U R                  (       dM   U R                  S   (       a  U R                   R#                  U5        g U R                   R%                  X5        g U R                  RA                  [        U5      U45        U =RB                  [E        U5      S-   -  sl!        U RG                  5         g ! [&        [(        4 a3    U R*                  R-                  U R.                  U R0                  5         Nš[2         a%  nU R4                  R7                  U5         S nAg S nAf[8        [:        4 a    e [<         a  nU R?                  US5         S nAg S nAff = f)NrÕ  z!Invalid address: must be None or rÖ  r   r~   ú'Fatal write error on datagram transporté   )$r�   rØ  rÙ  r  r    r  r$   r  r¡   rj  r   rÚ  r   rÛ  ri  r`  r?  rp   r  rj   ri   rw  r»   r:  Ú_sendto_readyrq   r…  r  r˜   r™   r—   r¡  rv  r  rþ   rÜ  r  s       r   r  Ú!_SelectorDatagramTransport.sendtoÝ  sÆ  € Ü˜$¤¬	´:Ð >×?Ñ?Üð #Ü#'¨£:×#6Ñ#6Ñ"9ð;ó <ð <ð �=�=Ø˜D $§-¡-Ð0Ó0Ü Ø7¸¿¹°ÐGóIð Ià—=‘=ˆDà�?�?˜tŸ}Ÿ}Ø�‰¤)×"MÑ"MÓMÜ—’Ð@ÔAØ�OŠO˜qÑ �OØà�|�|ðØ—;‘;˜z×*Ø—J‘J—O‘O DÔ)ð ð —J‘J×%Ñ% dÔ1Øð 	�‰×ÑœU 4›[¨$Ð/Ô0Ø×ÒœS ›Y¨™]Ñ*ÕØ×"Ñ"Õ$øô $Ô%5Ð6ó JØ—
‘
×&Ñ& t§}¡}°d×6HÑ6HÖIÜó Ø—‘×-Ñ-¨cÔ2ÜûÜÔ 1Ð2ó ØÜ ó Ø×!Ñ!ØÐBôDäûðús1   Ä/F, Ä8F, Æ,A IÇ.	IÇ7HÈIÈ4IÉIc                 ó’  • U R                   (       aš  U R                   R                  5       u  pU =R                  [        U5      -  sl         U R                  S   (       a  U R
                  R                  U5        OU R
                  R                  X5         U R                   (       a  Mš  U R%                  5         U R                   (       dI  U R&                  R)                  U R*                  5        U R,                  (       a  U R/                  S 5        g g g ! [        [        4 a>    U R                   R                  X45        U =R                  [        U5      -  sl         M¸  [         a%  nU R                  R                  U5         S nAg S nAf[        [        4 a    e [          a  nU R#                  US5         S nAg S nAff = f)Nr~   r  )ri  rí  r  rþ   r`  r?  rp   r  rj   ri   rî  rq   r…  r  r˜   r™   r—   r¡  rç  rw  r¿   r:  rk  r—  r  s       r   r  Ú(_SelectorDatagramTransport._sendto_ready  sM  € Ø�l�lØŸ™×-Ñ-Ó/‰JˆDØ×Ò¤ T£Ñ*ÕðØ—;‘;˜z×*Ø—J‘J—O‘O DÕ)à—J‘J×%Ñ% dÕ1ð �l�l‰lð, 	×#Ñ#Ô%Ø�|�|Ø�J‰J×%Ñ% d§m¡mÔ4Ø�}�}Ø×*Ñ*¨4Õ0ð ð øô $Ô%5Ð6ó Ø—‘×'Ñ'¨¨Ô5Ø×!Ò!¤S¨£YÑ.Õ!ÚÜó Ø—‘×-Ñ-¨cÔ2ÜûÜÔ 1Ð2ó ØÜ ó Ø×!Ñ!ØÐBôDäûðús1   Á/D Á=D ÄA
GÅ$	GÅ-FÆGÆ*GÇG)r  r  rR  r1   )r$   rS  rT  rU  rg  rh  Ú_buffer_factoryr   rx  r’  r  r  rY  rZ  r[  s   @r   rF   rF   ¸  s3   ø† à!×'Ñ'€Oà59Ø$(÷/ò!ò9ô (%÷T1ð 1r,   rF   )&rV  Ú__all__rg  r†   rØ   rà  Úosr    r[   r°  r'   ÚsslÚImportErrorÚ r   r   r   r   r	   r
   r   r   Úlogr   Úhasattrr·  Úsysconfr   rq   r   ÚBaseEventLoopr   Ú_FlowControlMixinÚ	Transportr]  r3   ÚDatagramTransportrF   rb   r,   r   Ú<module>r-     s  ðñð #€ã Û Û Û Û 	Û Û Û Û ðÛõ Ý Ý Ý Ý Ý Ý Ý Ý á�v—}‘} iÓ0€æðØ—Z’Z Ó-ˆ
ò
(ô
˜K×5Ñ5ô 
ôDa4˜×5Ñ5Ø#×-Ñ-ôa4ôHZÐ1ô Zôzj1Ð!3°Z×5QÑ5Qõ j1øðI% ó Ø
‚Cðûð$ ó àŠðús#   ªC+ Á?C9 Ã+C6Ã5C6Ã9DÄD