§
    ‹Ÿj:m  ã                   óV  — d dl Z d dlmZ d dlmZ d dlmZ d dlZd dlZd dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd dlZd dlmZ d dlZd dlmZ d dlmZ d dlmZmZmZ d d	lmZ d d
lmZmZmZm Z m!Z! d dl"m#Z#m$Z$ d dl%m&Z& d dl'Z'e'j(        rd dl'm)Z)  G d„ de¦  «        Z* G d„ dej+        ¦  «        Z, G d„ de¦  «        Z- G d„ de¦  «        Z. G d„ dej+        ¦  «        Z/ G d„ dej+        ¦  «        Z0 G d„ de¦  «        Z1 G d„ dej+        ¦  «        Z2e3dk    r ej4        ¦   «          dS dS )é    N)ÚThreadPoolExecutor)Úfutures)Ú	Generator)Úmock)Ú
native_str)Úgen)ÚIOLoopÚTimeoutErrorÚPeriodicCallback)Úapp_log)ÚAsyncTestCaseÚbind_unused_portÚ	ExpectLogÚgen_testÚsetup_with_context_manager)Úignore_deprecationÚskipIfNonUnix)ÚFuture)ÚListc                   óö   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zed
„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ ¦   «         Zeed„ ¦   «         ¦   «         Zd„ Z dS )Ú
TestIOLoopc                 óŠ  ‡‡— d| _         | j        }| Š|j        Šˆˆfd„}t          j        ||¦  «        |_        |                     d„ ¦  «         |                     d„ ¦  «         |                     t          j        d¬¦  «        |j        ¦  «         | 	                    ¦   «          |  
                    | j         d¦  «         d S )Nr   c                 ó@   •— ‰xj         dz  c_          ‰|g|¢R i |¤Ž d S ©Né   ©Úcalls)ÚselfÚcallbackÚargsÚkwargsÚold_add_callbackÚtests       €€úe/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/tornado/test/ioloop_test.pyÚadd_callbackzBTestIOLoop.test_add_callback_return_sequence.<locals>.add_callback1   s9   ø€ ØˆJŒJ˜!‰OˆJŒJØÐ˜XÐ7¨Ð7Ð7Ð7°Ð7Ð7Ð7Ð7Ð7ó    c                  ó   — i S ©N© r)   r&   r$   ú<lambda>z>TestIOLoop.test_add_callback_return_sequence.<locals>.<lambda>6   ó   €  "€ r&   c                  ó   — g S r(   r)   r)   r&   r$   r*   z>TestIOLoop.test_add_callback_return_sequence.<locals>.<lambda>7   r+   r&   é2   )Úmillisecondsé
   )r   Úio_loopr%   ÚtypesÚ
MethodTypeÚadd_timeoutÚdatetimeÚ	timedeltaÚstopÚstartÚ
assertLess)r   Úloopr%   r"   r#   s      @@r$   Ú!test_add_callback_return_sequencez,TestIOLoop.test_add_callback_return_sequence)   sÐ   øø€ àˆŒ
àŒ|ˆØˆØÔ,Ðð	8ð 	8ð 	8ð 	8ð 	8ð 	8õ "Ô,¨\¸4Ñ@Ô@ˆÔØ×Ò˜*˜*Ñ%Ô%Ð%Ø×Ò˜*˜*Ñ%Ô%Ð%Ø×Ò�Ô+¸Ð<Ñ<Ô<¸d¼iÑHÔHÐHØ�
Š
‰ŒˆØ�Š˜œ
 BÑ'Ô'Ð'Ð'Ð'r&   c                 ó<  ‡ ‡— ˆ fd„Šˆˆ fd„}‰ j                              ‰ j                              ¦   «         |¦  «         ‰                      ¦   «          ‰                      t          j        ¦   «         ‰ j        d¬¦  «         ‰                      ‰ j        ¦  «         d S )Nc                  ó>   •— d‰ _         ‰                      ¦   «          d S ©NT)Úcalledr6   ©r   s   €r$   r   z5TestIOLoop.test_add_callback_wakeup.<locals>.callback?   s   ø€ ØˆDŒKØ�IŠI‰KŒKˆKˆKˆKr&   c                  óz   •— d‰_         ‰j                             ‰ ¦  «         t          j        ¦   «         ‰_        d S ©NF)r>   r0   r%   ÚtimeÚ
start_time)r   r   s   €€r$   Úschedule_callbackz>TestIOLoop.test_add_callback_wakeup.<locals>.schedule_callbackC   s1   ø€ ØˆDŒKØŒL×%Ò% hÑ/Ô/Ð/å"œi™kœkˆDŒOˆOˆOr&   é   )Úplaces)r0   r3   rB   ÚwaitÚassertAlmostEqualrC   Ú
assertTruer>   )r   rD   r   s   ` @r$   Útest_add_callback_wakeupz#TestIOLoop.test_add_callback_wakeup<   s®   øø€ ð	ð 	ð 	ð 	ð 	ð	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	Œ× Ò  ¤×!2Ò!2Ñ!4Ô!4Ð6GÑHÔHÐHØ�	Š	‰ŒˆØ×Ò�tœy™{œ{¨D¬OÀAÐÑFÔFÐFØ�Š˜œÑ$Ô$Ð$Ð$Ð$r&   c                 ó,  ‡ — ˆ fd„}t          j        |¬¦  «        }‰ j                             |j        ¦  «         ‰                      ¦   «          t          j        ¦   «         ‰ j        z
  }‰                      |d¦  «         | 	                    ¦   «          d S )Nc                  óž   •— t          j        d¦  «         t          j         ¦   «         ‰ _        ‰ j                             ‰ j        ¦  «         d S )Nç{®Gáz„?)rB   ÚsleepÚ	stop_timer0   r%   r6   r?   s   €r$   Útargetz@TestIOLoop.test_add_callback_wakeup_other_thread.<locals>.targetO   s>   ø€ åŒJ�tÑÔÐÝ!œY™[œ[ˆDŒNØŒL×%Ò% d¤iÑ0Ô0Ð0Ð0Ð0r&   ©rP   çš™™™™™¹?)
Ú	threadingÚThreadr0   r%   r7   rG   rB   rO   r8   Újoin)r   rP   ÚthreadÚdeltas   `   r$   Ú%test_add_callback_wakeup_other_threadz0TestIOLoop.test_add_callback_wakeup_other_threadN   s�   ø€ ð	1ð 	1ð 	1ð 	1ð 	1õ Ô!¨Ð0Ñ0Ô0ˆØŒ×!Ò! &¤,Ñ/Ô/Ð/Ø�	Š	‰ŒˆÝ”	‘”˜dœnÑ,ˆØ�Š˜˜sÑ#Ô#Ð#Ø�Š‰Œˆˆˆr&   c                 ó”   — | j                              t          j        d¬¦  «        | j        ¦  «         |                      ¦   «          d S )Nr   )Úmicroseconds)r0   r3   r4   r5   r6   rG   r?   s    r$   Útest_add_timeout_timedeltaz%TestIOLoop.test_add_timeout_timedelta\   s;   € ØŒ× Ò ¥Ô!3ÀÐ!CÑ!CÔ!CÀTÄYÑOÔOÐOØ�	Š	‰Œˆˆˆr&   c                 ó0  — t          ¦   «         \  }}	 | j                             |                     ¦   «         d„ t          j        ¦  «         |                      t          | j        j        |                     ¦   «         d„ t          j        ¦  «         | j                             |                     ¦   «         ¦  «         | 	                    ¦   «          d S # | j                             |                     ¦   «         ¦  «         | 	                    ¦   «          w xY w)Nc                 ó   — d S r(   r)   ©ÚfdÚeventss     r$   r*   z.TestIOLoop.test_multiple_add.<locals>.<lambda>d   s   € °$€ r&   c                 ó   — d S r(   r)   r^   s     r$   r*   z.TestIOLoop.test_multiple_add.<locals>.<lambda>l   s   €  4€ r&   )
r   r0   Úadd_handlerÚfilenor	   ÚREADÚassertRaisesÚ	ExceptionÚremove_handlerÚclose©r   ÚsockÚports      r$   Útest_multiple_addzTestIOLoop.test_multiple_add`   sä   € Ý%Ñ'Ô'‰
ˆˆdð	ØŒL×$Ò$Ø—’‘”Ð6Ð6½¼ñô ð ð
 ×ÒÝØ”Ô(Ø—’‘”Ø'Ð'Ý”ñô ð ð ŒL×'Ò'¨¯ª©¬Ñ6Ô6Ð6Ø�JŠJ‰LŒLˆLˆLˆLøð ŒL×'Ò'¨¯ª©¬Ñ6Ô6Ð6Ø�JŠJ‰LŒLˆLˆLøøøs   “A>C ÃADc                 óÜ   — t          ¦   «         \  }}	 | j                             |                     ¦   «         ¦  «         |                     ¦   «          d S # |                     ¦   «          w xY wr(   )r   r0   rg   rc   rh   ri   s      r$   Útest_remove_without_addz"TestIOLoop.test_remove_without_adds   sY   € õ &Ñ'Ô'‰
ˆˆdð	ØŒL×'Ò'¨¯ª©¬Ñ6Ô6Ð6à�JŠJ‰LŒLˆLˆLˆLøˆD�JŠJ‰LŒLˆLˆLøøøs   “,A ÁA+c                 ó¸   — t          ¦   «         5  | j                             | j        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                      ¦   «          d S r(   )r   r0   Úadd_callback_from_signalr6   rG   r?   s    r$   Útest_add_callback_from_signalz(TestIOLoop.test_add_callback_from_signal|   sŽ   € õ  Ñ!Ô!ð 	=ð 	=ØŒL×1Ò1°$´)Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=à�	Š	‰Œˆˆˆs   � ;»?Á?c                 óR  — t          d¬¦  «        }t          j        |j        ¬¦  «        }|                     ¦   «          t	          ¦   «         5  |                     |j        ¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          |                     ¦   «          d S )NF©Úmake_currentrQ   )	r	   rS   rT   r7   r   rp   r6   rU   rh   )r   Úother_iolooprV   s      r$   Ú*test_add_callback_from_signal_other_threadz5TestIOLoop.test_add_callback_from_signal_other_threadƒ   så   € õ ¨5Ð1Ñ1Ô1ˆÝÔ!¨Ô);Ð<Ñ<Ô<ˆØ�Š‰ŒˆÝÑ!Ô!ð 	Eð 	EØ×1Ò1°,Ô2CÑDÔDÐDð	Eð 	Eð 	Eñ 	Eô 	Eð 	Eð 	Eð 	Eð 	Eð 	Eð 	Eøøøð 	Eð 	Eð 	Eð 	Eà�Š‰ŒˆØ×ÒÑÔÐÐÐs   ÁA4Á4A8Á;A8c                 ó&  ‡‡— t          j        ¦   «         Šˆˆfd„}t          d¬¦  «        Št          j        |¬¦  «        }|                     ¦   «          ‰                     ¦   «          t          d¦  «        D ]}‰                     d„ ¦  «         Œd S )Nc                  ó¸   •— ‰                      ‰j        ¦  «         ‰                     ¦   «          ‰                      ¦   «          ‰                     d¬¦  «         d S )NT©Úall_fds)r%   r6   r7   Úsetrh   )Úclosingru   s   €€r$   rP   z:TestIOLoop.test_add_callback_while_closing.<locals>.target•   sV   ø€ Ø×%Ò% lÔ&7Ñ8Ô8Ð8Ø×ÒÑ Ô Ð Ø�KŠK‰MŒMˆMØ×Ò tÐÑ,Ô,Ð,Ð,Ð,r&   Frs   rQ   éè  c                  ó   — d S r(   r)   r)   r&   r$   r*   z<TestIOLoop.test_add_callback_while_closing.<locals>.<lambda>    s   € ¨d€ r&   )rS   ÚEventr	   rT   r7   rG   Úranger%   )r   rP   rV   Úir|   ru   s       @@r$   Útest_add_callback_while_closingz*TestIOLoop.test_add_callback_while_closing�   s¨   øø€ õ ”/Ñ#Ô#ˆð	-ð 	-ð 	-ð 	-ð 	-ð 	-õ ¨5Ð1Ñ1Ô1ˆÝÔ!¨Ð0Ñ0Ô0ˆØ�Š‰ŒˆØ�Š‰ŒˆÝ�t‘”ð 	4ð 	4ˆAØ×%Ò% l lÑ3Ô3Ð3Ð3ð	4ð 	4r&   c                 ót  ‡ — t          j        ¦   «         \  }}	 ˆ fd„}‰ j                             |                     ¦   «         |t
          j        ¦  «         ‰ j                             ‰ j                             ¦   «         dz   t          j
        |j        d¦  «        ¦  «         ‰                      ¦   «          ‰ j                             |                     ¦   «         ¦  «         |                     ¦   «          |                     ¦   «          d S # |                     ¦   «          |                     ¦   «          w xY w)Nc                 óp   •— ‰                      |t          j        ¦  «         ‰                     ¦   «          d S r(   )ÚassertEqualr	   rd   r6   )r_   r`   r   s     €r$   Úhandlerz5TestIOLoop.test_read_while_writeable.<locals>.handlerª   s,   ø€ Ø× Ò  ­¬Ñ5Ô5Ð5Ø—	’	‘”���r&   rM   s   asdf)ÚsocketÚ
socketpairr0   rb   rc   r	   rd   r3   rB   Ú	functoolsÚpartialÚsendrG   rg   rh   )r   ÚclientÚserverr†   s   `   r$   Útest_read_while_writeablez$TestIOLoop.test_read_while_writeable¢   s	  ø€ õ
  Ô*Ñ,Ô,‰ˆ�ð	ðð ð ð ð ð ŒL×$Ò$ V§]¢]¡_¤_°g½v¼{ÑKÔKÐKØŒL×$Ò$Ø”×!Ò!Ñ#Ô# dÑ*­IÔ,=¸f¼kÈ7Ñ,SÔ,Sñô ð ð �IŠI‰KŒKˆKØŒL×'Ò'¨¯ª©¬Ñ8Ô8Ð8à�LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNˆNøð �LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNøøøs   ™C
D Ä*D7c                 óÐ   — | j                              | j                              ¦   «         | j        ¦  «        }|                      ¦   «          | j                              |¦  «         d S r(   )r0   r3   rB   r6   rG   Úremove_timeout©r   Úhandles     r$   Útest_remove_timeout_after_firez)TestIOLoop.test_remove_timeout_after_fire¸   sR   € à”×)Ò)¨$¬,×*;Ò*;Ñ*=Ô*=¸t¼yÑIÔIˆØ�	Š	‰ŒˆØŒ×#Ò# FÑ+Ô+Ð+Ð+Ð+r&   c                 ó.  ‡ — t          d¦  «        D ]R}‰ j                             ‰ j                             ¦   «         dz   d„ ¦  «        }‰ j                             |¦  «         ŒS‰ j                             ˆ fd„¦  «         ‰                      ¦   «          d S )NiÐ  i  c                  ó   — d S r(   r)   r)   r&   r$   r*   z8TestIOLoop.test_remove_timeout_cleanup.<locals>.<lambda>Å   s   € ÐSW€ r&   c                  óB   •— ‰ j                              ‰ j        ¦  «        S r(   ©r0   r%   r6   r?   s   €r$   r*   z8TestIOLoop.test_remove_timeout_cleanup.<locals>.<lambda>È   s   ø€ ¨$¬,×*CÒ*CÀDÄIÑ*NÔ*N€ r&   )r€   r0   r3   rB   r�   r%   rG   )r   r�   Útimeouts   `  r$   Útest_remove_timeout_cleanupz&TestIOLoop.test_remove_timeout_cleanup¾   s�   ø€ õ �t‘”ð 	1ð 	1ˆAØ”l×.Ò.¨t¬|×/@Ò/@Ñ/BÔ/BÀTÑ/IÈ<È<ÑXÔXˆGØŒL×'Ò'¨Ñ0Ô0Ð0Ð0àŒ×!Ò!Ð"NÐ"NÐ"NÐ"NÑOÔOÐOØ�	Š	‰Œˆˆˆr&   c                 óœ  ‡ ‡‡— ddgŠ‰ j                              ¦   «         }ˆˆ ˆfd„}‰ j                              |dz   |¦  «         ˆfd„}‰ j                              |dz   |¦  «        Š‰ j                              |dz   ‰ j        ¦  «         t          j        d¦  «         ‰                      ¦   «          ‰                      ‰ddg¦  «         d S )NFc                  óF   •— d‰ d<   ‰j                              ‰¦  «         d S ©NTr   )r0   r�   )r   r   Ú	t2_handles   €€€r$   Út1z7TestIOLoop.test_remove_timeout_from_timeout.<locals>.t1Ó   s(   ø€ ØˆE�!‰HØŒL×'Ò'¨	Ñ2Ô2Ð2Ð2Ð2r&   rM   c                  ó   •— d‰ d<   d S )NTr   r)   r   s   €r$   Út2z7TestIOLoop.test_remove_timeout_from_timeout.<locals>.t2Ù   s   ø€ ØˆE�!‰HˆHˆHr&   g{®Gáz”?g¸…ëQ¸ž?T)r0   rB   r3   r6   rN   rG   r…   )r   Únowrž   r    r   r�   s   `   @@r$   Ú test_remove_timeout_from_timeoutz+TestIOLoop.test_remove_timeout_from_timeoutË   sõ   øøø€ Ø˜�ˆð
 Œl×ÒÑ!Ô!ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	Œ× Ò   t¡¨RÑ0Ô0Ð0ð	ð 	ð 	ð 	ð 	ð ”L×,Ò,¨S°4©Z¸Ñ<Ô<ˆ	ØŒ× Ò   t¡¨T¬YÑ7Ô7Ð7ÝŒ
�4ÑÔÐØ�	Š	‰ŒˆØ×Ò˜  u Ñ.Ô.Ð.Ð.Ð.r&   c                 óF  — g }| j                              | j                              ¦   «         |j        d¦  «         | j                              t	          j        d¬¦  «        |j        d¦  «         | j                              | j                              ¦   «         |j        d¦  «         | j                              d|j        d¦  «         | j                              d| j        ¦  «         |  	                    ¦   «          |  
                    t          |¦  «        g d¢¦  «         d S )Nr   r   )ÚsecondsrE   é   é   )r   rE   r¥   r¦   )r0   r3   rB   Úappendr4   r5   Úcall_atÚ
call_laterr6   rG   r…   Úsorted)r   Úresultss     r$   Útest_timeout_with_argumentsz&TestIOLoop.test_timeout_with_argumentsâ   sñ   € àˆØŒ× Ò  ¤×!2Ò!2Ñ!4Ô!4°g´nÀaÑHÔHÐHØŒ× Ò ¥Ô!3¸AÐ!>Ñ!>Ô!>ÀÄÐPQÑRÔRÐRØŒ×Ò˜Tœ\×.Ò.Ñ0Ô0°'´.À!ÑDÔDÐDØŒ×Ò  7¤>°1Ñ5Ô5Ð5ØŒ×Ò  4¤9Ñ-Ô-Ð-Ø�	Š	‰Œˆð 	×Ò� ™œ¨,¨,¨,Ñ7Ô7Ð7Ð7Ð7r&   c                 óÊ   — | j                              | j                              ¦   «         d„ ¦  «        }|                      |¦  «         | j                              |¦  «         d S )Nc                  ó   — d S r(   r)   r)   r&   r$   r*   z4TestIOLoop.test_add_timeout_return.<locals>.<lambda>ò   s   € Àt€ r&   )r0   r3   rB   ÚassertIsNotNoner�   r‘   s     r$   Útest_add_timeout_returnz"TestIOLoop.test_add_timeout_returnï   s[   € ð ”×)Ò)¨$¬,×*;Ò*;Ñ*=Ô*=¸|¸|ÑLÔLˆØ×Ò˜VÑ$Ô$Ð$ØŒ×#Ò# FÑ+Ô+Ð+Ð+Ð+r&   c                 óÊ   — | j                              | j                              ¦   «         d„ ¦  «        }|                      |¦  «         | j                              |¦  «         d S )Nc                  ó   — d S r(   r)   r)   r&   r$   r*   z0TestIOLoop.test_call_at_return.<locals>.<lambda>÷   s   € À4€ r&   )r0   r¨   rB   r¯   r�   r‘   s     r$   Útest_call_at_returnzTestIOLoop.test_call_at_returnö   sY   € Ø”×%Ò% d¤l×&7Ò&7Ñ&9Ô&9¸<¸<ÑHÔHˆØ×Ò˜VÑ$Ô$Ð$ØŒ×#Ò# FÑ+Ô+Ð+Ð+Ð+r&   c                 óœ   — | j                              dd„ ¦  «        }|                      |¦  «         | j                              |¦  «         d S )Nr   c                  ó   — d S r(   r)   r)   r&   r$   r*   z3TestIOLoop.test_call_later_return.<locals>.<lambda>ü   s   € °D€ r&   )r0   r©   r¯   r�   r‘   s     r$   Útest_call_later_returnz!TestIOLoop.test_call_later_returnû   sK   € Ø”×(Ò(¨¨L¨LÑ9Ô9ˆØ×Ò˜VÑ$Ô$Ð$ØŒ×#Ò# FÑ+Ô+Ð+Ð+Ð+r&   c                 ó  ‡‡—  G d„ d¦  «        }t          ¦   «         \  }} ||¦  «        Št          d¬¦  «        Š‰                     ˆˆfd„¦  «         ‰                     d¬¦  «         |                      ‰j        ¦  «         dS )	z¦When a file object is used instead of a numeric file descriptor,
        the object should be closed (by IOLoop.close(all_fds=True),
        not just the fd.
        c                   ó    — e Zd Zd„ Zd„ Zd„ ZdS )ú8TestIOLoop.test_close_file_object.<locals>.SocketWrapperc                 ó"   — || _         d| _        d S rA   )ÚsockobjÚclosed)r   r»   s     r$   Ú__init__zATestIOLoop.test_close_file_object.<locals>.SocketWrapper.__init__
  s   € Ø&�”Ø#�”��r&   c                 ó4   — | j                              ¦   «         S r(   )r»   rc   r?   s    r$   rc   z?TestIOLoop.test_close_file_object.<locals>.SocketWrapper.fileno  s   € Ø”|×*Ò*Ñ,Ô,Ð,r&   c                 óF   — d| _         | j                             ¦   «          d S r=   )r¼   r»   rh   r?   s    r$   rh   z>TestIOLoop.test_close_file_object.<locals>.SocketWrapper.close  s#   € Ø"�”Ø”×"Ò"Ñ$Ô$Ð$Ð$Ð$r&   N)Ú__name__Ú
__module__Ú__qualname__r½   rc   rh   r)   r&   r$   ÚSocketWrapperr¹   	  sA   € € € € € ð$ð $ð $ð-ð -ð -ð%ð %ð %ð %ð %r&   rÃ   Frs   c                  óH   •— ‰                       ‰d„ t          j        ¦  «        S )Nc                 ó   — d S r(   r)   r^   s     r$   r*   zETestIOLoop.test_close_file_object.<locals>.<lambda>.<locals>.<lambda>  s   € °4€ r&   )rb   r	   rd   )r0   Úsocket_wrappers   €€r$   r*   z3TestIOLoop.test_close_file_object.<locals>.<lambda>  s$   ø€ �G×'Ò'ØÐ 7Ð 7½¼ñô € r&   Try   N)r   r	   Úrun_syncrh   rI   r¼   )r   rÃ   r»   rk   r0   rÆ   s       @@r$   Útest_close_file_objectz!TestIOLoop.test_close_file_object   s¾   øø€ ð
	%ð 
	%ð 
	%ð 
	%ð 
	%ñ 
	%ô 
	%ð 
	%õ )Ñ*Ô*‰ˆ�Ø&˜ wÑ/Ô/ˆÝ eÐ,Ñ,Ô,ˆØ×Òðð ð ð ð ñ	
ô 	
ð 	
ð
 	�Š˜dˆÑ#Ô#Ð#Ø�Š˜Ô-Ñ.Ô.Ð.Ð.Ð.r&   c                 óä  ‡ ‡‡— t          ¦   «         \  Š}g Šˆˆ ˆfd„}‰ j                             ‰|t          j        ¦  «         t          j        t          j        ¦   «         ¦  «        5 }|                     d|f¦  «         ‰  	                    ¦   «          ddd¦  «         n# 1 swxY w Y   ‰ j         
                    ‰¦  «         ‰ j                             ‰                     ¦   «         |t          j        ¦  «         t          j        t          j        ¦   «         ¦  «        5 }|                     d|f¦  «         ‰  	                    ¦   «          ddd¦  «         n# 1 swxY w Y   ‰                      ‰d         ‰¦  «         ‰                      ‰d         ‰                     ¦   «         ¦  «         ‰ j         
                    ‰                     ¦   «         ¦  «         ‰                     ¦   «          dS )z>The handler callback receives the same fd object it passed in.c                 ó°   •— ‰                      | ¦  «         ‰                     ¦   «         \  }}|                     ¦   «          ‰                     ¦   «          d S r(   )r§   Úacceptrh   r6   )r_   r`   ÚconnÚaddrÚfdsr   Úserver_socks       €€€r$   Úhandle_connectionzGTestIOLoop.test_handler_callback_file_object.<locals>.handle_connection%  sE   ø€ Ø�JŠJ�r‰NŒNˆNØ$×+Ò+Ñ-Ô-‰JˆD�$Ø�JŠJ‰LŒLˆLØ�IŠI‰KŒKˆKˆKˆKr&   z	127.0.0.1Nr   r   )r   r0   rb   r	   rd   Ú
contextlibr|   r‡   ÚconnectrG   rg   rc   ÚassertIsr…   rh   )r   rk   rÐ   Úclient_sockrÎ   rÏ   s   `   @@r$   Ú!test_handler_callback_file_objectz,TestIOLoop.test_handler_callback_file_object   s5  øøø€ å,Ñ.Ô.Ñˆ�TØˆð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	Œ× Ò  Ð.?ÅÄÑMÔMÐMÝÔ¥¤¡¤Ñ0Ô0ð 	°KØ×Ò ¨dÐ 3Ñ4Ô4Ð4Ø�IŠI‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	Œ×#Ò# KÑ0Ô0Ð0ØŒ× Ò  ×!3Ò!3Ñ!5Ô!5Ð7HÍ&Ì+ÑVÔVÐVÝÔ¥¤¡¤Ñ0Ô0ð 	°KØ×Ò ¨dÐ 3Ñ4Ô4Ð4Ø�IŠI‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	�Š�c˜!”f˜kÑ*Ô*Ð*Ø×Ò˜˜Qœ ×!3Ò!3Ñ!5Ô!5Ñ6Ô6Ð6ØŒ×#Ò# K×$6Ò$6Ñ$8Ô$8Ñ9Ô9Ð9Ø×ÒÑÔÐÐÐs$   Á),B!Â!B%Â(B%Ä#,EÅEÅ"Ec                 óÎ  — t          ¦   «         \  }}d„ }| j                             ||t          j        ¦  «         |                      t          ¦  «        5  | j                             |                     ¦   «         |t          j        ¦  «         d d d ¦  «         n# 1 swxY w Y   | j                             |                     ¦   «         ¦  «         | 	                    ¦   «          d S )Nc                 ó   — d S r(   r)   r^   s     r$   Úfz+TestIOLoop.test_mixed_fd_fileobj.<locals>.f<  s   € ØˆDr&   )
r   r0   rb   r	   rd   re   rf   rc   rg   rh   )r   rÏ   rk   rØ   s       r$   Útest_mixed_fd_fileobjz TestIOLoop.test_mixed_fd_fileobj9  s  € Ý,Ñ.Ô.Ñˆ�Tð	ð 	ð 	ð 	Œ× Ò  ¨aµ´Ñ=Ô=Ð=Ø×Ò�yÑ)Ô)ð 	Kð 	Kð ŒL×$Ò$ [×%7Ò%7Ñ%9Ô%9¸1½f¼kÑJÔJÐJð	Kð 	Kð 	Kñ 	Kô 	Kð 	Kð 	Kð 	Kð 	Kð 	Kð 	Køøøð 	Kð 	Kð 	Kð 	Kð 	Œ×#Ò# K×$6Ò$6Ñ$8Ô$8Ñ9Ô9Ð9Ø×ÒÑÔÐÐÐs   Á9BÂBÂ!Bc                 óî   ‡ ‡‡— dgŠdgŠˆˆˆ fd„}‰ j                              |¦  «         ‰                      ¦   «          ‰                      ‰d         ¦  «         ‰                      ‰d         ¦  «         dS )z:Calling start() twice should raise an error, not deadlock.Fc                  óš   •— 	 ‰j                              ¦   «          d‰d<   n# t          $ r d‰ d<   Y nw xY w‰                     ¦   «          d S rœ   )r0   r7   rf   r6   )Úgot_exceptionÚreturned_from_startr   s   €€€r$   r   z+TestIOLoop.test_reentrant.<locals>.callbackL  sf   ø€ ð(Ø”×"Ò"Ñ$Ô$Ð$Ø)-Ð# AÑ&Ð&øÝð (ð (ð (Ø#'�˜aÑ Ð Ð ð(øøøà�IŠI‰KŒKˆKˆKˆKs   ƒ" ¢4³4r   N)r0   r%   rG   rI   ÚassertFalse)r   r   rÜ   rÝ   s   ` @@r$   Útest_reentrantzTestIOLoop.test_reentrantG  s“   øøø€ à$˜gÐØ˜ˆð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	Œ×!Ò! (Ñ+Ô+Ð+Ø�	Š	‰ŒˆØ�Š˜ aÔ(Ñ)Ô)Ð)Ø×ÒÐ,¨QÔ/Ñ0Ô0Ð0Ð0Ð0r&   c                 óþ   — | j                              d„ ¦  «         | j                              | j        ¦  «         t          t          d¦  «        5  |                      ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )z-Uncaught exceptions get logged by the IOLoop.c                  ó   — ddz  S ©Nr   r   r)   r)   r&   r$   r*   z3TestIOLoop.test_exception_logging.<locals>.<lambda>[  ó
   € ¨!¨a©%€ r&   úException in callbackN)r0   r%   r6   r   r   rG   r?   s    r$   Útest_exception_loggingz!TestIOLoop.test_exception_loggingY  s´   € àŒ×!Ò! - -Ñ0Ô0Ð0ØŒ×!Ò! $¤)Ñ,Ô,Ð,Ý•wÐ 7Ñ8Ô8ð 	ð 	Ø�IŠI‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÁA2Á2A6Á9A6c                 óî   ‡ — t           j        ˆ fd„¦   «         }‰ j                             |¦  «         t	          t
          d¦  «        5  ‰                      ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )z:The IOLoop examines exceptions from Futures and logs them.c                  óP   •— ‰ j                              ‰ j        ¦  «         ddz   d S râ   r—   r?   s   €r$   r   z:TestIOLoop.test_exception_logging_future.<locals>.callbackc  s(   ø€ àŒL×%Ò% d¤iÑ0Ô0Ð0Ø�‰EˆEˆEˆEr&   rä   N)r   Ú	coroutiner0   r%   r   r   rG   ©r   r   s   ` r$   Útest_exception_logging_futurez(TestIOLoop.test_exception_logging_future`  sÄ   ø€ õ 
Œð	ð 	ð 	ð 	ñ 
Œð	ð 	Œ×!Ò! (Ñ+Ô+Ð+Ý•wÐ 7Ñ8Ô8ð 	ð 	Ø�IŠI‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ÁA*Á*A.Á1A.c                 óÊ   ‡ — ˆ fd„}‰ j                              |¦  «         t          t          d¦  «        5  ‰                      ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )z=The IOLoop examines exceptions from awaitables and logs them.c               “   ój   •K  — ‰ j                              ‰ j         j        ‰ j        ¦  «         ddz   d S râ   r—   r?   s   €r$   r   z?TestIOLoop.test_exception_logging_native_coro.<locals>.callbacko  s5   øè è € ð ŒL×%Ò% d¤lÔ&?ÀÄÑKÔKÐKØ�‰EˆEˆEˆEr&   rä   N)r0   r%   r   r   rG   ré   s   ` r$   Ú"test_exception_logging_native_coroz-TestIOLoop.test_exception_logging_native_corol  s¶   ø€ ð	ð 	ð 	ð 	ð 	ð 	Œ×!Ò! (Ñ+Ô+Ð+Ý•wÐ 7Ñ8Ô8ð 	ð 	Ø�IŠI‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ¶AÁAÁAc                 óô  — | j                              d„ ¦  «         | j                              | j        ¦  «         t          t          d¦  «        5  |                      ¦   «          d d d ¦  «         n# 1 swxY w Y   | j                              d„ ¦  «         | j                              | j        ¦  «         t          t          d¦  «        5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó   — ddz  S râ   r)   r)   r&   r$   r*   z0TestIOLoop.test_spawn_callback.<locals>.<lambda>|  rã   r&   rä   c                  ó   — ddz  S râ   r)   r)   r&   r$   r*   z0TestIOLoop.test_spawn_callback.<locals>.<lambda>‚  s
   € ¨A°©E€ r&   )r0   r%   r6   r   r   rG   Úspawn_callbackr?   s    r$   Útest_spawn_callbackzTestIOLoop.test_spawn_callbacky  s[  € ð 	Œ×!Ò! - -Ñ0Ô0Ð0ØŒ×!Ò! $¤)Ñ,Ô,Ð,Ý•wÐ 7Ñ8Ô8ð 	ð 	Ø�IŠI‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	Œ×#Ò# M MÑ2Ô2Ð2ØŒ×!Ò! $¤)Ñ,Ô,Ð,Ý•wÐ 7Ñ8Ô8ð 	ð 	Ø�IŠI‰KŒKˆKð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s$   ÁA1Á1A5Á8A5ÃC-Ã-C1Ã4C1c                 ó|  ‡ ‡‡‡— t          j        ¦   «         \  ŠŠ	 ‰                     d¦  «         ‰                     d¦  «         g Šˆˆˆ ˆfd„}‰ j                             ‰|‰ j        j        ¦  «         ‰ j                             ‰|‰ j        j        ¦  «         ‰ j                             d‰ j        ¦  «         ‰                      ¦   «          ‰  	                    ‰dg¦  «         ‰ 
                    ¦   «          ‰ 
                    ¦   «          d S # ‰ 
                    ¦   «          ‰ 
                    ¦   «          w xY w)Ns   abcc                 óÌ   •— ‰                      |                      d¦  «        ¦  «         | ‰u r‰j                             ‰¦  «         d S ‰j                             ‰¦  «         d S )Ni   )r§   Úrecvr0   rg   )r_   r`   ÚchunksrŒ   r   r�   s     €€€€r$   Úhandle_readz@TestIOLoop.test_remove_handler_from_handler.<locals>.handle_read’  s`   ø€ Ø—’˜bŸgšg d™mœmÑ,Ô,Ð,Ø˜�<�<Ø”L×/Ò/°Ñ7Ô7Ð7Ð7Ð7à”L×/Ò/°Ñ7Ô7Ð7Ð7Ð7r&   rR   )r‡   rˆ   r‹   r0   rb   rd   r©   r6   rG   r…   rh   )r   r÷   rö   rŒ   r�   s   ` @@@r$   Ú test_remove_handler_from_handlerz+TestIOLoop.test_remove_handler_from_handler‡  s3  øøøø€ õ  Ô*Ñ,Ô,‰ˆ�ð	Ø�KŠK˜ÑÔÐØ�KŠK˜ÑÔÐð ˆFð8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð ŒL×$Ò$ V¨[¸$¼,Ô:KÑLÔLÐLØŒL×$Ò$ V¨[¸$¼,Ô:KÑLÔLÐLØŒL×#Ò# C¨¬Ñ3Ô3Ð3Ø�IŠI‰KŒKˆKð ×Ò˜V f XÑ.Ô.Ð.à�LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNˆNøð �LŠL‰NŒNˆNØ�LŠL‰NŒNˆNˆNøøøs   œCD Ä*D;c              #   ót   ‡ ‡K  — d„ Št          j        ˆˆ fd„t          d¦  «        D ¦   «         ¦  «        V — d S )Nc                  ór   — t          d¦  «        D ]&} t          d¬¦  «        }|                     ¦   «          Œ'd S )Nr/   Frs   )r€   r	   rh   )r�   r9   s     r$   rØ   z*TestIOLoop.test_init_close_race.<locals>.f¬  s@   € Ý˜2‘Y”Yð ð �Ý¨5Ð1Ñ1Ô1�Ø—
’
‘”��ðð r&   c                 óF   •— g | ]}‰j                              d ‰¦  «        ‘ŒS r(   )r0   Úrun_in_executor)Ú.0r�   rØ   r   s     €€r$   ú
<listcomp>z3TestIOLoop.test_init_close_race.<locals>.<listcomp>±  s+   ø€ ÐQÐQÐQÀ1˜œ×5Ò5°d¸AÑ>Ô>ÐQÐQÐQr&   rE   )r   Úmultir€   ©r   rØ   s   `@r$   Útest_init_close_racezTestIOLoop.test_init_close_race¤  sS   øøè è € ð	ð 	ð 	õ
 ŒiÐQÐQÐQÐQÐQÍÈaÉÌÐQÑQÔQÑRÔRÐRÐRÐRÐRÐRr&   c                 ó  — t          j        ¦   «         }t          |d¬¦  «        }|j        |u sJ ‚|                      t
          ¦  «        5  t          |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ¦   «          d S )NF)Úasyncio_looprt   )ÚasyncioÚnew_event_loopr	   r  re   ÚRuntimeErrorrh   )r   r  r9   s      r$   Útest_explicit_asyncio_loopz%TestIOLoop.test_explicit_asyncio_loop³  sÖ   € ÝÔ-Ñ/Ô/ˆÝ <¸eÐDÑDÔDˆØÔ  LÐ0Ð0Ð0Ð0Ø×Ò�|Ñ,Ô,ð 	Bð 	Bå ¸5ÐAÑAÔAÐAð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð 	�
Š
‰Œˆˆˆs   Á
A(Á(A,Á/A,N)!rÀ   rÁ   rÂ   r:   rJ   rX   r[   rl   rn   rq   rv   r‚   r   rŽ   r“   r™   r¢   r¬   r°   r³   r¶   rÈ   rÕ   rÙ   rß   rå   rê   rí   rò   rø   r   r  r  r)   r&   r$   r   r   (   sê  € € € € € ð(ð (ð (ð&%ð %ð %ð$ð ð ðð ð ðð ð ð&ð ð ðð ð ð
ð 
ð 
ð4ð 4ð 4ð& ðð ñ „]ðð*,ð ,ð ,ðð ð ð/ð /ð /ð.8ð 8ð 8ð,ð ,ð ,ð,ð ,ð ,ð
,ð ,ð ,ð
/ð /ð /ð@ð ð ð2ð ð ð1ð 1ð 1ð$ð ð ð
ð 
ð 
ðð ð ðð ð ð ðð ñ „]ðð8 ØðSð Sñ „Xñ „]ðSðð ð ð ð r&   r   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestIOLoopCurrentc                 ór   — t          | t          ¦   «         ¦  «         d | _        t          j        ¦   «          d S r(   )r   r   r0   r	   Úclear_currentr?   s    r$   ÚsetUpzTestIOLoopCurrent.setUpÀ  s5   € Ý" 4Õ);Ñ)=Ô)=Ñ>Ô>Ð>ØˆŒÝÔÑÔÐÐÐr&   c                 óJ   — | j         �| j                              ¦   «          d S d S r(   ©r0   rh   r?   s    r$   ÚtearDownzTestIOLoopCurrent.tearDownÅ  s,   € ØŒ<Ð#ØŒL×ÒÑ Ô Ð Ð Ð ð $Ð#r&   c                 ó¦  ‡ — t          d¬¦  «        ‰ _        ‰                      t          j        d¬¦  «        ¦  «         t	          d¦  «        D ]‚}ˆ fd„}‰ j                             |¦  «         ‰ j                             ¦   «          ‰                      ‰ j        ‰ j        ¦  «         ‰                      t          j        d¬¦  «        ¦  «         Œƒd S )NFrs   )Úinstancer¥   c                  ó|   •— t          j        ¦   «         ‰ _        ‰ j        €J ‚‰ j                             ¦   «          d S r(   )r	   ÚcurrentÚcurrent_io_loopr0   r6   r?   s   €r$   rØ   z-TestIOLoopCurrent.test_non_current.<locals>.fÑ  s;   ø€ Ý'-¤~Ñ'7Ô'7�Ô$Ø”|Ð/Ð/Ð/Ø”×!Ò!Ñ#Ô#Ð#Ð#Ð#r&   )	r	   r0   ÚassertIsNoner  r€   r%   r7   rÓ   r  )r   r�   rØ   s   `  r$   Útest_non_currentz"TestIOLoopCurrent.test_non_currentÉ  sÙ   ø€ Ý¨5Ð1Ñ1Ô1ˆŒà×Ò�&œ.°%Ð8Ñ8Ô8Ñ9Ô9Ð9õ �q‘”ð 	>ð 	>ˆAð$ð $ð $ð $ð $ð
 ŒL×%Ò% aÑ(Ô(Ð(ØŒL×ÒÑ Ô Ð Ø�MŠM˜$Ô.°´Ñ=Ô=Ð=à×Ò�fœn°eÐ<Ñ<Ô<Ñ=Ô=Ð=Ð=ð	>ð 	>r&   c                 óˆ   — t          d¬¦  «        | _        |                      | j        t          j        ¦   «         ¦  «         d S )NTrs   )r	   r0   rÓ   r  r?   s    r$   Útest_force_currentz$TestIOLoopCurrent.test_force_currentÜ  s8   € Ý¨4Ð0Ñ0Ô0ˆŒØ�Š�d”l¥F¤NÑ$4Ô$4Ñ5Ô5Ð5Ð5Ð5r&   N)rÀ   rÁ   rÂ   r  r  r  r  r)   r&   r$   r	  r	  ¿  sP   € € € € € ðð ð ð
!ð !ð !ð>ð >ð >ð&6ð 6ð 6ð 6ð 6r&   r	  c                   ó4   ‡ — e Zd Zˆ fd„Zed„ ¦   «         Zˆ xZS )ÚTestIOLoopCurrentAsyncc                 ó€   •— t          ¦   «                              ¦   «          t          | t          ¦   «         ¦  «         d S r(   )Úsuperr  r   r   )r   Ú	__class__s    €r$   r  zTestIOLoopCurrentAsync.setUpâ  s1   ø€ Ý‰Œ�Š‰ŒˆÝ" 4Õ);Ñ)=Ô)=Ñ>Ô>Ð>Ð>Ð>r&   c              #   óœ   K  — t          d¦  «        5 }|                     t          j        ¦  «        V — d d d ¦  «         d S # 1 swxY w Y   d S r   )r   Úsubmitr	   r  )r   Úes     r$   Útest_clear_without_currentz1TestIOLoopCurrentAsync.test_clear_without_currentæ  s’   è è € õ
   Ñ"Ô"ð 	1 aØ—(’(�6Ô/Ñ0Ô0Ð0Ð0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1s   ’"AÁAÁA)rÀ   rÁ   rÂ   r  r   r!  Ú__classcell__)r  s   @r$   r  r  á  sS   ø€ € € € € ð?ð ?ð ?ð ?ð ?ð ð1ð 1ñ „Xð1ð 1ð 1ð 1ð 1r&   r  c                   óV   — e Zd Zd„ Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         ZdS )ÚTestIOLoopFuturesc                 óŽ  ‡ — t          j        d¦  «        5 }d„ }‰ j                             |                     |¦  «        ˆ fd„¦  «         ‰                      ¦   «         }‰                      |                     ¦   «         ¦  «         ‰                      | 	                    ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   c                  ó   — d S r(   r)   r)   r&   r$   Údummyz8TestIOLoopFutures.test_add_future_threads.<locals>.dummyó  s   € Ø�r&   c                 ó.   •— ‰                      | ¦  «        S r(   ©r6   )Úfuturer   s    €r$   r*   z;TestIOLoopFutures.test_add_future_threads.<locals>.<lambda>÷  s   ø€ °4·9²9¸VÑ3DÔ3D€ r&   )
r   r   r0   Ú
add_futurer  rG   rI   Údoner  Úresult)r   Úpoolr'  r*  s   `   r$   Útest_add_future_threadsz)TestIOLoopFutures.test_add_future_threadsð  s   ø€ ÝÔ'¨Ñ*Ô*ð 
	/¨dðð ð ð ŒL×#Ò#Ø—’˜EÑ"Ô"Ð$DÐ$DÐ$DÐ$Dñô ð ð —Y’Y‘[”[ˆFØ�OŠO˜FŸKšK™MœMÑ*Ô*Ð*Ø×Ò˜fŸmšm™oœoÑ.Ô.Ð.ð
	/ð 
	/ð 
	/ñ 
	/ô 
	/ð 
	/ð 
	/ð 
	/ð 
	/ð 
	/ð 
	/ð 
	/øøøð 
	/ð 
	/ð 
	/ð 
	/ð 
	/ð 
	/s   –BB:Â:B>ÃB>c              #   ó4  K  — t          j        ¦   «         }t          j        ¦   «         }d„ }t          j        ¦   «                              d |||¦  «        t          j        ¦   «                              d |||¦  «        gV —}|                      ||g|¦  «         d S )Nc                 óV   — |                       ¦   «          |                     ¦   «          | S r(   ©r{   rG   ©Ú
self_eventÚother_events     r$   Ú	sync_funcz=TestIOLoopFutures.test_run_in_executor_gen.<locals>.sync_func  s,   € Ø�NŠNÑÔÐØ×ÒÑÔÐð Ðr&   )rS   r   r	   r  rü   r…   )r   Úevent1Úevent2r6  Úress        r$   Útest_run_in_executor_genz*TestIOLoopFutures.test_run_in_executor_gený  s£   è è € å”Ñ"Ô"ˆÝ”Ñ"Ô"ˆð	ð 	ð 	õ ŒNÑÔ×,Ò,¨T°9¸fÀfÑMÔMÝŒNÑÔ×,Ò,¨T°9¸fÀfÑMÔMð
ð 
ð 
ˆð
 	×Ò˜& &Ð)¨3Ñ/Ô/Ð/Ð/Ð/r&   c              #   óÌ   ‡K  — t          j        ¦   «         }t          j        ¦   «         }d„ Šˆfd„} |||¦  «         |||¦  «        gV —}|                      ||g|¦  «         d S )Nc                 óV   — |                       ¦   «          |                     ¦   «          | S r(   r2  r3  s     r$   r6  z@TestIOLoopFutures.test_run_in_executor_native.<locals>.sync_func  s*   € Ø�NŠNÑÔÐØ×ÒÑÔÐØÐr&   c              “   óf   •K  — t          j        ¦   «                              d ‰| |¦  «        ƒ d {V —†S r(   )r	   r  rü   )r4  r5  r6  s     €r$   Úasync_wrapperzDTestIOLoopFutures.test_run_in_executor_native.<locals>.async_wrapper   sN   øè è € ÝœÑ)Ô)×9Ò9Ø�i ¨[ñô ð ð ð ð ð ð ð r&   )rS   r   r…   )r   r7  r8  r>  r9  r6  s        @r$   Útest_run_in_executor_nativez-TestIOLoopFutures.test_run_in_executor_native  s”   øè è € å”Ñ"Ô"ˆÝ”Ñ"Ô"ˆð	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð
 #�] 6¨6Ñ2Ô2°M°MÀ&È&Ñ4QÔ4QÐRÐRÐRˆà×Ò˜& &Ð)¨3Ñ/Ô/Ð/Ð/Ð/r&   c              #   ó”  ‡‡K  — dgŠ G ˆfd„dt           j        ¦  «        }t          j        ¦   «         Šˆfd„} |d¦  «        }t	          j        ¦   «         }|                     |¦  «         |                     d |¦  «        V — |                      d‰d         ¦  «         |  	                    ‰ 
                    ¦   «         ¦  «         d S )Nr   c                   ó"   •‡ — e Zd Zˆ ˆfd„Zˆ xZS )ú?TestIOLoopFutures.test_set_default_executor.<locals>.MyExecutorc                 óX   •— ‰dxx         dz  cc<    t          ¦   «         j        |g|¢R Ž S )Nr   r   )r  r  )r   Úfuncr    r  Úcounts      €€r$   r  zFTestIOLoopFutures.test_set_default_executor.<locals>.MyExecutor.submit.  s6   ø€ Ø�a��”˜A‘��‘Ø%•u‘w”w”~ dÐ2¨TÐ2Ð2Ð2Ð2r&   )rÀ   rÁ   rÂ   r  r"  )r  rE  s   @€r$   Ú
MyExecutorrB  -  s>   øø€ € € € € ð3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3r&   rF  c                  ó0   •— ‰                       ¦   «          d S r(   )r{   )Úevents   €r$   r6  z>TestIOLoopFutures.test_set_default_executor.<locals>.sync_func4  s   ø€ Ø�IŠI‰KŒKˆKˆKˆKr&   r   )r   r   rS   r   r	   r  Úset_default_executorrü   r…   rI   Úis_set)r   rF  r6  Úexecutorr9   rE  rH  s        @@r$   Útest_set_default_executorz+TestIOLoopFutures.test_set_default_executor)  sô   øøè è € à�ˆð	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3�Ô3ñ 	3ô 	3ð 	3õ
 ”Ñ!Ô!ˆð	ð 	ð 	ð 	ð 	ð �:˜a‘=”=ˆÝŒ~ÑÔˆØ×!Ò! (Ñ+Ô+Ð+Ø×"Ò" 4¨Ñ3Ô3Ð3Ð3Ð3Ø×Ò˜˜E !œHÑ%Ô%Ð%Ø�Š˜Ÿš™œÑ'Ô'Ð'Ð'Ð'r&   N)rÀ   rÁ   rÂ   r/  r   r:  r?  rL  r)   r&   r$   r$  r$  ï  st   € € € € € ð/ð /ð /ð ð0ð 0ñ „Xð0ð* ð0ð 0ñ „Xð0ð* ð(ð (ñ „Xð(ð (ð (r&   r$  c                   óJ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ ZdS )ÚTestIOLoopRunSyncc                 ó0   — t          d¬¦  «        | _        d S )NFrs   )r	   r0   r?   s    r$   r  zTestIOLoopRunSync.setUp@  s   € Ý¨5Ð1Ñ1Ô1ˆŒˆˆr&   c                 ó8   — | j                              ¦   «          d S r(   r  r?   s    r$   r  zTestIOLoopRunSync.tearDownC  s   € ØŒ×ÒÑÔÐÐÐr&   c                 ó¬   — |                       t          j        ¦  «        5  | j                             d„ ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó   — dS ©Né*   r)   r)   r&   r$   r*   z4TestIOLoopRunSync.test_sync_result.<locals>.<lambda>H  s   € ¨"€ r&   )re   r   ÚBadYieldErrorr0   rÇ   r?   s    r$   Útest_sync_resultz"TestIOLoopRunSync.test_sync_resultF  s•   € Ø×Ò�sÔ0Ñ1Ô1ð 	.ð 	.ØŒL×!Ò! * *Ñ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.s    A	Á	AÁAc                 ó¢   — |                       t          ¦  «        5  | j                             d„ ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc                  ó   — ddz  S râ   r)   r)   r&   r$   r*   z7TestIOLoopRunSync.test_sync_exception.<locals>.<lambda>L  rã   r&   )re   ÚZeroDivisionErrorr0   rÇ   r?   s    r$   Útest_sync_exceptionz%TestIOLoopRunSync.test_sync_exceptionJ  s“   € Ø×ÒÕ0Ñ1Ô1ð 	1ð 	1ØŒL×!Ò! - -Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1s   ›AÁAÁAc                 óŒ   — t           j        d„ ¦   «         }|                      | j                             |¦  «        d¦  «         d S )Nc               3   óJ   K  — t           j        V — t          j        d¦  «        ‚rS  )r   ÚmomentÚReturnr)   r&   r$   rØ   z.TestIOLoopRunSync.test_async_result.<locals>.fO  s"   è è € å”*ÐÐÐÝ”*˜R‘.”.Ð r&   rT  )r   rè   r…   r0   rÇ   r   s     r$   Útest_async_resultz#TestIOLoopRunSync.test_async_resultN  sK   € Ý	Œð	!ð 	!ñ 
Œð	!ð 	×Ò˜œ×.Ò.¨qÑ1Ô1°2Ñ6Ô6Ð6Ð6Ð6r&   c                 óÊ   — t           j        d„ ¦   «         }|                      t          ¦  «        5  | j                             |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nc               3   ó0   K  — t           j        V — ddz   d S râ   ©r   r]  r)   r&   r$   rØ   z1TestIOLoopRunSync.test_async_exception.<locals>.fW  s!   è è € å”*ÐÐÐØ�‰EˆEˆEˆEr&   )r   rè   re   rY  r0   rÇ   r   s     r$   Útest_async_exceptionz&TestIOLoopRunSync.test_async_exceptionV  s®   € Ý	Œð	ð 	ñ 
Œð	ð ×ÒÕ0Ñ1Ô1ð 	%ð 	%ØŒL×!Ò! !Ñ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%ð 	%ð 	%s   °AÁAÁAc                 óF   ‡ — ˆ fd„}‰ j                              |¦  «         d S )Nc                  ó`   •— ‰                       t          j        ¦   «         ‰ j        ¦  «         d S r(   )rÓ   r	   r  r0   r?   s   €r$   rØ   z)TestIOLoopRunSync.test_current.<locals>.f`  s'   ø€ Ø�MŠM�&œ.Ñ*Ô*¨D¬LÑ9Ô9Ð9Ð9Ð9r&   )r0   rÇ   r   s   ` r$   Útest_currentzTestIOLoopRunSync.test_current_  s:   ø€ ð	:ð 	:ð 	:ð 	:ð 	:ð 	Œ×Ò˜aÑ Ô Ð Ð Ð r&   c                 ó€   — t           j        d„ ¦   «         }|                      t          | j        j        |d¬¦  «         d S )Nc               3   ó6   K  — t          j        d¦  «        V — d S r   )r   rN   r)   r&   r$   rØ   z)TestIOLoopRunSync.test_timeout.<locals>.ff  s    è è € å”)˜A‘,”,ÐÐÐÐÐr&   rM   )r˜   )r   rè   re   r
   r0   rÇ   r   s     r$   Útest_timeoutzTestIOLoopRunSync.test_timeoute  sG   € Ý	Œð	ð 	ñ 
Œð	ð 	×Ò�,¨¬Ô(=¸qÈ$ÐÑOÔOÐOÐOÐOr&   c                 óp   ‡— t           j        d„ ¦   «         Šˆfd„}| j                             |¦  «         d S )Nc               3   ó&   K  — t           j        V — d S r(   rb  r)   r&   r$   Úf1z3TestIOLoopRunSync.test_native_coroutine.<locals>.f1m  s   è è € å”*ÐÐÐÐÐr&   c               “   ó,   •K  —  ‰ ¦   «         ƒ d {V —† d S r(   r)   )rl  s   €r$   Úf2z3TestIOLoopRunSync.test_native_coroutine.<locals>.f2q  s"   øè è € Ø�"‘$”$ˆJˆJˆJˆJˆJˆJˆJˆJˆJr&   )r   rè   r0   rÇ   )r   rn  rl  s     @r$   Útest_native_coroutinez'TestIOLoopRunSync.test_native_coroutinel  sU   ø€ Ý	Œð	ð 	ñ 
Œð	ð	ð 	ð 	ð 	ð 	ð 	Œ×Ò˜bÑ!Ô!Ð!Ð!Ð!r&   c                 óÔ   — d„ }|                       t          ¦  «        5 }| j                             |¦  «         d d d ¦  «         n# 1 swxY w Y   dt	          |j        ¦  «        v sJ ‚d S )Nc               “   ó¼   K  — t          j        d¦  «        ƒ d {V —† t          j        ¦   «                              ¦   «          t          j        d¦  «        ƒ d {V —† d S )NrR   r/   )r  rN   r	   r  r6   r)   r&   r$   rØ   z1TestIOLoopRunSync.test_stop_no_timeout.<locals>.fw  sj   è è € Ý”- Ñ$Ô$Ð$Ð$Ð$Ð$Ð$Ð$Ð$ÝŒNÑÔ×!Ò!Ñ#Ô#Ð#Ý”- Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#Ð#r&   zEvent loop stopped)re   r  r0   rÇ   ÚstrÚ	exception)r   rØ   Úcms      r$   Útest_stop_no_timeoutz&TestIOLoopRunSync.test_stop_no_timeoutv  s°   € ð	$ð 	$ð 	$ð
 ×Ò�|Ñ,Ô,ð 	%°ØŒL×!Ò! !Ñ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%à#¥s¨2¬<Ñ'8Ô'8Ð8Ð8Ð8Ð8Ð8Ð8s   žAÁA	ÁA	N)rÀ   rÁ   rÂ   r  r  rV  rZ  r_  rc  rf  ri  ro  ru  r)   r&   r$   rN  rN  ?  s­   € € € € € ð2ð 2ð 2ðð ð ð.ð .ð .ð1ð 1ð 1ð7ð 7ð 7ð%ð %ð %ð!ð !ð !ðPð Pð Pð"ð "ð "ð9ð 9ð 9ð 9ð 9r&   rN  c                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestPeriodicCallbackMathc                 ó˜   — g }d}||_         |D ];}|                     |¦  «         |                     |j         ¦  «         |j         |z   }Œ<|S )a9  Simulate a series of calls to the PeriodicCallback.

        Pass a list of call durations in seconds (negative values
        work to simulate clock adjustments during the call, or more or
        less equivalently, between calls). This method returns the
        times at which each call would be made.
        r}   )Ú_next_timeoutÚ_update_nextr§   )r   ÚpcÚ	durationsr   r¡   Úds         r$   Úsimulate_callsz'TestPeriodicCallbackMath.simulate_calls‚  s`   € ð ˆØˆØˆÔØð 	'ð 	'ˆAØ�OŠO˜CÑ Ô Ð Ø�LŠL˜Ô)Ñ*Ô*Ð*ØÔ" QÑ&ˆCˆCØˆr&   c                 ó   — d S r(   r)   r?   s    r$   r'  zTestPeriodicCallbackMath.dummy“  s   € Øˆr&   c                 ó�   — t          | j        d¦  «        }|                      |                      |dgdz  ¦  «        g d¢¦  «         d S )Né'  r   é   ©éò  éü  é  i  é  ©r   r'  r…   r~  ©r   r{  s     r$   Ú
test_basicz#TestPeriodicCallbackMath.test_basic–  sW   € Ý˜dœj¨%Ñ0Ô0ˆØ×ÒØ×Ò  Q C¨!¡GÑ,Ô,Ð.LÐ.LÐ.Lñ	
ô 	
ð 	
ð 	
ð 	
r&   c                 ó”   — g d¢}g d¢}t          | j        d¦  «        }|                      |                      ||¦  «        |¦  «         d S )N)é	   rŒ  r/   é   é   rŽ  é#   r�  r   r   r   )r„  r…  r†  r‡  i.  iL  ij  i’  iº  iÄ  iÎ  r�  rˆ  )r   Úcall_durationsÚexpectedr{  s       r$   Útest_overrunz%TestPeriodicCallbackMath.test_overrunœ  s`   € ð AÐ@Ð@ˆð
ð 
ð 
ˆõ ˜dœj¨%Ñ0Ô0ˆØ×Ò˜×,Ò,¨R°Ñ@Ô@À(ÑKÔKÐKÐKÐKr&   c                 óè   — t          | j        d¦  «        }|                      |                      |g d¢¦  «        g d¢¦  «         |                      |                      |g d¢¦  «        g d¢¦  «         d S )Nr�  )éþÿÿÿéÿÿÿÿéýÿÿÿr”  r   rƒ  )iœÿÿÿr   r   )r„  r…  r†  rˆ  r‰  s     r$   Útest_clock_backwardsz-TestPeriodicCallbackMath.test_clock_backwards±  s‰   € Ý˜dœj¨%Ñ0Ô0ˆð
 	×ÒØ×Ò Ð$7Ð$7Ð$7Ñ8Ô8Ð:XÐ:XÐ:Xñ	
ô 	
ð 	
ð 	×Ò˜×,Ò,¨R°°°Ñ>Ô>Ð@RÐ@RÐ@RÑSÔSÐSÐSÐSr&   c                 ó&  ‡— g d¢Šg d¢}dgt          ‰¦  «        z  }t          | j        dd¬¦  «        }ˆfd„}t          j        d|¦  «        5  |                      |                      ||¦  «        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	N)ç      à?r   r   g      è?)r„  g     ô�@r†  g     E�@r   r�  r™  )Újitterc                  ó.   •— ‰                       d¦  «        S )Nr   )Úpop)Úrandom_timess   €r$   Úmock_randomz9TestPeriodicCallbackMath.test_jitter.<locals>.mock_randomÈ  s   ø€ Ø×#Ò# AÑ&Ô&Ð&r&   zrandom.random)Úlenr   r'  r   Úpatchr…   r~  )r   r‘  r�  r{  rž  r�  s        @r$   Útest_jitterz$TestPeriodicCallbackMath.test_jitterÂ  s  ø€ Ø(Ð(Ð(ˆØ0Ð0Ð0ˆØ˜�s <Ñ0Ô0Ñ0ˆÝ˜dœj¨%¸Ð<Ñ<Ô<ˆð	'ð 	'ð 	'ð 	'ð 	'õ ŒZ˜¨Ñ5Ô5ð 	Pð 	PØ×Ò˜T×0Ò0°°^ÑDÔDÀhÑOÔOÐOð	Pð 	Pð 	Pñ 	Pô 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pøøøð 	Pð 	Pð 	Pð 	Pð 	Pð 	Ps   Á+BÂB
ÂB
c                 óŠ   — t          d„ t          j        dd¬¦  «        ¦  «        }d}|                      |j        |¦  «         d S )Nc                  ó   — d S r(   r)   r)   r&   r$   r*   z9TestPeriodicCallbackMath.test_timedelta.<locals>.<lambda>Ï  s   €  d€ r&   r   é   )Úminutesr¤   i8D )r   r4   r5   r…   Úcallback_time)r   r{  Úexpected_callback_times      r$   Útest_timedeltaz'TestPeriodicCallbackMath.test_timedeltaÎ  sJ   € Ý˜l˜l­HÔ,>ÀqÐRTÐ,UÑ,UÔ,UÑVÔVˆØ!&ÐØ×Ò˜Ô)Ð+AÑBÔBÐBÐBÐBr&   N)
rÀ   rÁ   rÂ   r~  r'  rŠ  r’  r—  r¡  r¨  r)   r&   r$   rw  rw  �  s‹   € € € € € ðð ð ð"ð ð ð
ð 
ð 
ðLð Lð Lð*Tð Tð Tð"
Pð 
Pð 
PðCð Cð Cð Cð Cr&   rw  c                   ó$   — e Zd Zd„ Zdd„Zdd„ZdS )ÚTestPeriodicCallbackAsyncc                 óà   ‡ ‡— dŠdˆˆ fd„}t          |d¦  «        }|                     ¦   «          ‰                      ¦   «          |                     ¦   «          ‰                      ‰d¦  «         d S )Nr   Úreturnc                  óJ   •— ‰ dz  Š ‰ dk    r‰                      ¦   «          d S d S )Nr   r¥   r)  )rE  r   s   €€r$   r   z?TestPeriodicCallbackAsync.test_periodic_plain.<locals>.callbackØ  s-   ø€ à�Q‰JˆEØ˜ŠzˆzØ—	’	‘”���ð ˆzr&   r/   r¥   ©r¬  N)r   r7   rG   r6   r…   )r   r   r{  rE  s   `  @r$   Útest_periodic_plainz-TestPeriodicCallbackAsync.test_periodic_plainÕ  s€   øø€ Øˆð	ð 	ð 	ð 	ð 	ð 	ð 	õ ˜h¨Ñ+Ô+ˆØ
�Š‰
Œ
ˆ
Ø�	Š	‰ŒˆØ
�Š‰	Œ	ˆ	Ø×Ò˜ Ñ"Ô"Ð"Ð"Ð"r&   r¬  Nc                 ó(  ‡ ‡‡— ddgŠt           j        dˆˆˆ fd„¦   «         }t          |d¦  «        Š‰                     ¦   «          ‰                      ¦   «          ‰                      ‰d         d¦  «         ‰                      ‰d         d¦  «         d S )	Nr   r¬  ú%Generator[Future[None], object, None]c               3   óú   •K  — ‰ dxx         dz  cc<   t          j        d¦  «        V — ‰ dxx         dz  cc<   ‰ d         dk    r5‰                     ¦   «          ‰j                             ‰j        ¦  «         d S d S ©Nr   r   gš™™™™™™?r¥   ©r   rN   r6   r0   r%   ©Úcountsr{  r   s   €€€r$   r   z>TestPeriodicCallbackAsync.test_periodic_coro.<locals>.callbackç  s†   øè è € à�1ˆIˆIŒI˜‰NˆIˆI‰IÝ”)˜EÑ"Ô"Ð"Ð"Ð"Ø�1ˆIˆIŒI˜‰NˆIˆI‰IØ�aŒy˜AŠ~ˆ~Ø—’‘	”	�	Ø”×)Ò)¨$¬)Ñ4Ô4Ð4Ð4Ð4ð ˆ~r&   r/   r¥   r   )r¬  r±  )r   rè   r   r7   rG   r…   ©r   r   r¶  r{  s   ` @@r$   Útest_periodic_coroz,TestPeriodicCallbackAsync.test_periodic_coroä  s§   øøø€ Ø�Q�ˆå	Œð	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ñ 
Œð	5õ ˜h¨Ñ+Ô+ˆØ
�Š‰
Œ
ˆ
Ø�	Š	‰ŒˆØ×Ò˜ œ AÑ&Ô&Ð&Ø×Ò˜ œ AÑ&Ô&Ð&Ð&Ð&r&   c                 ó  ‡ ‡‡— ddgŠdˆˆˆ fd„}t          |d¦  «        Š‰                     ¦   «          ‰                      ¦   «          ‰                      ‰d         d¦  «         ‰                      ‰d         d¦  «         d S )Nr   r¬  c               “   ó  •K  — ‰ dxx         dz  cc<   t          j        d¦  «        ƒ d {V —† ‰ dxx         dz  cc<   ‰ d         dk    r5‰                     ¦   «          ‰j                             ‰j        ¦  «         d S d S r³  r´  rµ  s   €€€r$   r   z?TestPeriodicCallbackAsync.test_periodic_async.<locals>.callbackù  s’   øè è € Ø�1ˆIˆIŒI˜‰NˆIˆI‰IÝ”)˜EÑ"Ô"Ð"Ð"Ð"Ð"Ð"Ð"Ð"Ø�1ˆIˆIŒI˜‰NˆIˆI‰IØ�aŒy˜AŠ~ˆ~Ø—’‘	”	�	Ø”×)Ò)¨$¬)Ñ4Ô4Ð4Ð4Ð4ð ˆ~r&   r/   r¥   r   r®  )r   r7   rG   r…   r·  s   ` @@r$   Útest_periodic_asyncz-TestPeriodicCallbackAsync.test_periodic_asyncö  s›   øøø€ Ø�Q�ˆð	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5õ ˜h¨Ñ+Ô+ˆØ
�Š‰
Œ
ˆ
Ø�	Š	‰ŒˆØ×Ò˜ œ AÑ&Ô&Ð&Ø×Ò˜ œ AÑ&Ô&Ð&Ð&Ð&r&   r®  )rÀ   rÁ   rÂ   r¯  r¸  r»  r)   r&   r$   rª  rª  Ô  sK   € € € € € ð#ð #ð #ð'ð 'ð 'ð 'ð$'ð 'ð 'ð 'ð 'ð 'r&   rª  c                   óf   — e Zd Zd„ Zd„ Zd„ Z ej        ej	        dk    d¦  «        d„ ¦   «         Z
dS )ÚTestIOLoopConfigurationc                 óÔ   — ddgt          |¦  «        z   }t          j        dd                     |¦  «        g}t	          t          j        |¦  «        ¦  «                             ¦   «         S )Nz!from tornado.ioloop import IOLoopz*classname = lambda x: x.__class__.__name__z-cz; )ÚlistÚsysÚ
executablerU   r   Ú
subprocessÚcheck_outputÚstrip)r   Ú
statementsÚ	stmt_listr    s       r$   Ú
run_pythonz"TestIOLoopConfiguration.run_python	  sb   € à/Ø8ð
õ �ÑÔñˆ	õ ”  d§i¢i°	Ñ&:Ô&:Ð;ˆÝ�*Ô1°$Ñ7Ô7Ñ8Ô8×>Ò>Ñ@Ô@Ð@r&   c                 ó²   — |                       d¦  «        }|                      |d¦  «         |                       d¦  «        }|                      |d¦  «         d S )Nú"print(classname(IOLoop.current()))ÚAsyncIOMainLoopzprint(classname(IOLoop()))ÚAsyncIOLoop©rÇ  r…   ©r   Úclss     r$   Útest_defaultz$TestIOLoopConfiguration.test_default  sY   € à�oŠoÐBÑCÔCˆØ×Ò˜Ð/Ñ0Ô0Ð0Ø�oŠoÐ:Ñ;Ô;ˆØ×Ò˜˜mÑ,Ô,Ð,Ð,Ð,r&   c                 ó^   — |                       dd¦  «        }|                      |d¦  «         d S )Nz8IOLoop.configure("tornado.platform.asyncio.AsyncIOLoop")rÉ  rÊ  rÌ  rÍ  s     r$   Útest_asyncioz$TestIOLoopConfiguration.test_asyncio  s:   € Ø�oŠoØFØ0ñ
ô 
ˆð 	×Ò˜Ð/Ñ0Ô0Ð0Ð0Ð0r&   )r¥   é   z*implicit event loop creation not availablec                 ó`   — |                       ddd¦  «        }|                      |d¦  «         d S )Nz4from tornado.platform.asyncio import AsyncIOMainLoopzAsyncIOMainLoop().install()rÉ  rÊ  rÌ  rÍ  s     r$   Útest_asyncio_mainz)TestIOLoopConfiguration.test_asyncio_main  s?   € ð �oŠoØBØ)Ø0ñ
ô 
ˆð
 	×Ò˜Ð/Ñ0Ô0Ð0Ð0Ð0r&   N)rÀ   rÁ   rÂ   rÇ  rÏ  rÑ  ÚunittestÚskipIfrÀ  Úversion_inforÔ  r)   r&   r$   r½  r½    s~   € € € € € ðAð Að Að-ð -ð -ð1ð 1ð 1ð €X„_ØÔ˜GÒ#Ð%Qñô ð1ð 1ñô ð1ð 1ð 1r&   r½  Ú__main__)5r  Úconcurrent.futuresr   Ú
concurrentr   Úcollections.abcr   rÑ   r4   r‰   r‡   rÂ  rÀ  rS   rB   r1   rÕ  r   Útornado.escaper   Útornador   Útornado.ioloopr	   r
   r   Útornado.logr   Útornado.testingr   r   r   r   r   Útornado.test.utilr   r   Útornado.concurrentr   ÚtypingÚTYPE_CHECKINGr   r   ÚTestCaser	  r  r$  rN  rw  rª  r½  rÀ   Úmainr)   r&   r$   ú<module>rç     sa  ðØ €€€Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø €€€à %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð &Ð %Ð %Ð %Ð %Ð %à €€€à	Ôð ØÐÐÐÐÐðRð Rð Rð Rð R�ñ Rô Rð Rðn6ð 6ð 6ð 6ð 6˜Ô)ñ 6ô 6ð 6ðD1ð 1ð 1ð 1ð 1˜]ñ 1ô 1ð 1ðM(ð M(ð M(ð M(ð M(˜ñ M(ô M(ð M(ð`?9ð ?9ð ?9ð ?9ð ?9˜Ô)ñ ?9ô ?9ð ?9ðDPCð PCð PCð PCð PC˜xÔ0ñ PCô PCð PCðf1'ð 1'ð 1'ð 1'ð 1' ñ 1'ô 1'ð 1'ðh 1ð  1ð  1ð  1ð  1˜hÔ/ñ  1ô  1ð  1ðF ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr&   