+
    -Iëjªx  ã                   óº  € ^ RI t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIHtHt ^ RIHtHt ^ RIHtHt ^ RIHt ^ RIHtHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIH t  ^ RI!H"t"H#t# ^ RI$H%t%H&t&H't' ^ RI(H)t)H*t*H+t+H,t,H-t- ^ RI.H/t/ ^ RI0H1t1H2t2H3t3H4t4H5t5 ^ RI6H7t7H8t8H9t9 ^ RI:H;t;H<t<H=t=H>t>  ! R R]/P~                  4      t@ ! R R];4      tA ! R R];4      tB ! R R];4      tC ! R R];4      tD ! R R];4      tE ! R R ];4      tF ! R! R"];4      tG ! R# R$];4      tH ! R% R&];4      tI ! R' R(];4      tJ]> ! R) R*];4      4       tK]7 ! R+ R,]34      4       tL ! R- R.]1]L4      tM ! R/ R0]2]L4      tN ! R1 R2]34      tO ! R3 R4]14      tP ! R5 R6]14      tQ ! R7 R8]14      tR ! R9 R:]14      tS ! R; R<]14      tT ! R= R>]/Pª                  4      tV ! R? R@]14      tW ! RA RB]14      tXR# )Cé    N)Úclosing)Ú
to_unicodeÚutf8)ÚgenÚversion)ÚAsyncHTTPClientÚHTTPResponse©Ú
HTTPServer)ÚHTTPHeadersÚResponseStartLine)ÚIOLoop)ÚUnsatisfiableReadError)ÚEvent)Úgen_log)ÚResolverÚbind_sockets)ÚSimpleAsyncHTTPClientÚHTTPStreamClosedErrorÚHTTPTimeoutError)ÚChunkHandlerÚCountdownHandlerÚHelloWorldHandlerÚRedirectHandlerÚUserAgentHandler)Úhttpclient_test)ÚAsyncHTTPTestCaseÚAsyncHTTPSTestCaseÚAsyncTestCaseÚ	ExpectLogÚgen_test)Úabstract_base_testÚskipIfNoIPv6Úrefusing_port)ÚRequestHandlerÚApplicationÚurlÚstream_request_bodyc                   ó&   a € ] tR t^2t o R tRtV tR# )ÚSimpleHTTPClientCommonTestCasec                ó\   € \        R R7      pV P                  \        V\         4      4       V# )T©Úforce_instance)r   Ú
assertTrueÚ
isinstance©ÚselfÚclients   & ÚE/usr/lib/python3/dist-packages/tornado/test/simple_httpclient_test.pyÚget_http_clientÚ.SimpleHTTPClientCommonTestCase.get_http_client3   s%   € Ü&°dÔ;ˆØ�‰œ
 6Ô+@ÓAÔBØˆó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r4   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r3   r*   r*   2   s   ø‡ € ÷ð r6   r*   c                   óJ   a € ] tR t^9t o R t]P                  R 4       tRtV t	R# )ÚTriggerHandlerc                ó   € Wn         W n        R # ©N©ÚqueueÚwake_callback)r1   rE   rF   s   &&&r3   Ú
initializeÚTriggerHandler.initialize:   s   € ØŒ
Ø*Ör6   c              #  ó
  "  € \         P                  ! R 4       \        4       pV P                  P	                  VP
                  4       V P                  RR4      R8X  d   V P                  4        VP                  4       x € R# 5i)zqueuing triggerÚwakeÚtrueN)	ÚloggingÚdebugr   rE   ÚappendÚsetÚget_argumentrF   Úwait)r1   Úevents   & r3   ÚgetÚTriggerHandler.get>   s\   é € ä�ŠÐ'Ô(Ü“ˆØ�
‰
×Ñ˜%Ÿ)™)Ô$Ø×Ñ˜V VÓ,°Ô6Ø×ÑÔ Ø�j‰j‹lÔùs   ‚BBrD   N)
r8   r9   r:   r;   rG   r   Ú	coroutinerS   r<   r=   r>   s   @r3   rA   rA   9   s"   ø‡ € ò+ð 	‡]�]ñó ör6   rA   c                   óJ   a € ] tR t^Ht o R t]P                  R 4       tRtV t	R# )ÚContentLengthHandlerc                óŒ   € V P                  4       V n        \        P                  ! 4       P	                  V P
                  4       R # rC   )ÚdetachÚstreamr   ÚcurrentÚspawn_callbackÚwrite_response©r1   s   &r3   rS   ÚContentLengthHandler.getI   s*   € Ø—k‘k“mˆŒÜ�ŠÓ×'Ñ'¨×(;Ñ(;Ö<r6   c              #  óº   "  € V P                   P                  \        R V P                  R4      ,          4      4      x € V P                   P	                  4        R# 5i)z)HTTP/1.0 200 OK
Content-Length: %s

okÚvalueN)rZ   Úwriter   rP   Úcloser^   s   &r3   r]   Ú#ContentLengthHandler.write_responseM   sL   é € à�k‰k×ÑÜØAØ×#Ñ# GÓ,õ-óó
ò 	
ð 	�‰×ÑÖùs   ‚AA)rZ   N)
r8   r9   r:   r;   rS   r   rU   r]   r<   r=   r>   s   @r3   rW   rW   H   s"   ø‡ € ò=ð 	‡]�]ñó ör6   rW   c                   ó&   a € ] tR t^Xt o R tRtV tR# )ÚHeadHandlerc                ó*   € V P                  R R4       R# )úContent-LengthÚ7N)Ú
set_headerr^   s   &r3   ÚheadÚHeadHandler.headY   s   € Ø�‰Ð(¨#Ö.r6   r7   N)r8   r9   r:   r;   rk   r<   r=   r>   s   @r3   rf   rf   X   s   ø‡ € ÷/ð /r6   rf   c                   ó&   a € ] tR t^]t o R tRtV tR# )ÚOptionsHandlerc                óL   € V P                  R R4       V P                  R4       R# )zAccess-Control-Allow-OriginÚ*ÚokN©rj   rb   r^   s   &r3   ÚoptionsÚOptionsHandler.options^   s   € Ø�‰Ð5°sÔ;Ø�
‰
�4Ör6   r7   N)r8   r9   r:   r;   rs   r<   r=   r>   s   @r3   rn   rn   ]   s   ø‡ € ÷ð r6   rn   c                   ó&   a € ] tR t^ct o R tRtV tR# )ÚNoContentHandlerc                óH   € V P                  ^Ì4       V P                  4        R# )éÌ   N©Ú
set_statusÚfinishr^   s   &r3   rS   ÚNoContentHandler.getd   s   € Ø�‰˜ÔØ�‰Žr6   r7   N©r8   r9   r:   r;   rS   r<   r=   r>   s   @r3   rv   rv   c   s   ø‡ € ÷ð r6   rv   c                   ó&   a € ] tR t^it o R tRtV tR# )ÚSeeOtherPostHandlerc                óÜ   € \        V P                  P                  4      pVR9   g#   Q RV P                  P                  ,          4       hV P                  RR4       V P	                  V4       R# )é.  úunexpected body %rÚLocationú/see_other_getN©r�   i/  )ÚintÚrequestÚbodyrj   rz   )r1   Úredirect_codes   & r3   ÚpostÚSeeOtherPostHandler.postj   sT   € Ü˜DŸL™L×-Ñ-Ó.ˆØ 
Ô*ÐTÐ,@À4Ç<Á<×CTÑCTÕ,TÓTÐ*Ø�‰˜
Ð$4Ô5Ø�‰˜Ö&r6   r7   N©r8   r9   r:   r;   rŠ   r<   r=   r>   s   @r3   r   r   i   s   ø‡ € ÷'ð 'r6   r   c                   ó&   a € ] tR t^qt o R tRtV tR# )ÚSeeOtherGetHandlerc                ó¬   € V P                   P                  '       d'   \        R V P                   P                  ,          4      hV P                  R4       R# )r‚   rq   N)r‡   rˆ   Ú	Exceptionrb   r^   s   &r3   rS   ÚSeeOtherGetHandler.getr   s9   € Ø�<‰<××ÐÜÐ0°4·<±<×3DÑ3DÕDÓEÐEØ�
‰
�4Ör6   r7   Nr}   r>   s   @r3   rŽ   rŽ   q   s   ø‡ € ÷ð r6   rŽ   c                   ó&   a € ] tR t^xt o R tRtV tR# )ÚHostEchoHandlerc                ó^   € V P                  V P                  P                  R ,          4       R# )ÚHostN)rb   r‡   Úheadersr^   s   &r3   rS   ÚHostEchoHandler.gety   s   € Ø�
‰
�4—<‘<×'Ñ'¨Õ/Ö0r6   r7   Nr}   r>   s   @r3   r“   r“   x   s   ø‡ € ÷1ð 1r6   r“   c                   ó&   a € ] tR t^}t o R tRtV tR# )ÚNoContentLengthHandlerc                óä   € V P                   P                  P                  R 4      '       d4   V P                  4       pVP	                  R4       VP                  4        R# V P                  R4       R# )zHTTP/1s   HTTP/1.0 200 OK

hellozHTTP/1 requiredN)r‡   r   Ú
startswithrY   rb   rc   r{   )r1   rZ   s   & r3   rS   ÚNoContentLengthHandler.get~   sM   € Ø�<‰<×Ñ×*Ñ*¨8×4Ò4ð —[‘[“]ˆFØ�L‰LÐ<Ô=Ø�L‰LŽNà�K‰KÐ)Ö*r6   r7   Nr}   r>   s   @r3   r™   r™   }   s   ø‡ € ÷	+ð 	+r6   r™   c                   ó&   a € ] tR t^Št o R tRtV tR# )ÚEchoPostHandlerc                óP   € V P                  V P                  P                  4       R # rC   )rb   r‡   rˆ   r^   s   &r3   rŠ   ÚEchoPostHandler.post‹   s   € Ø�
‰
�4—<‘<×$Ñ$Ö%r6   r7   NrŒ   r>   s   @r3   rž   rž   Š   s   ø‡ € ÷&ð &r6   rž   c                   ó&   a € ] tR t^�t o R tRtV tR# )ÚRespondInPrepareHandlerc                óJ   € V P                  R 4       V P                  R4       R# )é“  Ú	forbiddenNry   r^   s   &r3   ÚprepareÚRespondInPrepareHandler.prepare‘   s   € Ø�‰˜ÔØ�‰�KÖ r6   r7   N)r8   r9   r:   r;   r¦   r<   r=   r>   s   @r3   r¢   r¢   �   s   ø‡ € ÷!ð !r6   r¢   c                   ót  a € ] tR t^–t o V 3R lR ltR,V 3R lR lltV 3R lR ltV 3R lR ltV 3R	 lR
 ltR t	R t
R tR t]R 4       tR tR tR tR t]R 4       tR t]R 4       tR tR tR tR tR tR tR tR tR t] PB                  R  4       t"R! t#R" t$R# t%R$ t&R% t'R& t(R' t)R( t*R) t+R*t,V t-R+# )-ÚSimpleHTTPClientTestMixinc                ó    <€ V ^8„  d   QhRS[ /# ©é   Úreturn)r†   )Úformatr?   s   "€r3   Ú__annotate__Ú&SimpleHTTPClientTestMixin.__annotate__™   s   ø€ ÷ $ñ $™sñ $r6   c                ó   € \        4       hrC   ©ÚNotImplementedErrorr^   s   &r3   Úget_http_portÚ'SimpleHTTPClientTestMixin.get_http_port™   ó   € Ü!Ó#Ð#r6   c                óF   <€ V ^8„  d   QhRS[ RS[RS[P                  RS[/# )r¬   ÚpathÚraise_errorÚkwargsr­   )ÚstrÚboolÚtypingÚAnyr	   )r®   r?   s   "€r3   r¯   r°   œ   s1   ø€ ÷ $ñ $Ùð$Ù&*ð$Ù>D¿j¹jð$á	ñ$r6   c                ó   € \        4       hrC   r²   )r1   r¸   r¹   rº   s   &&&,r3   ÚfetchÚSimpleHTTPClientTestMixin.fetchœ   s   € ô "Ó#Ð#r6   c                ó&   <€ V ^8„  d   QhRS[ RS[ /# )r¬   r¸   r­   ©r»   )r®   r?   s   "€r3   r¯   r°   ¢   s   ø€ ÷ $ñ $™Cð $¡Cñ $r6   c                ó   € \        4       hrC   r²   )r1   r¸   s   &&r3   Úget_urlÚ!SimpleHTTPClientTestMixin.get_url¢   r¶   r6   c                ó    <€ V ^8„  d   QhRS[ /# r«   rÃ   )r®   r?   s   "€r3   r¯   r°   ¥   s   ø€ ÷ $ñ $™cñ $r6   c                ó   € \        4       hrC   r²   r^   s   &r3   Úget_protocolÚ&SimpleHTTPClientTestMixin.get_protocol¥   r¶   r6   c                ó    <€ V ^8„  d   QhRS[ /# r«   r
   )r®   r?   s   "€r3   r¯   r°   ¨   s   ø€ ÷ $ñ $¡ñ $r6   c                ó   € \        4       hrC   r²   r^   s   &r3   Úget_http_serverÚ)SimpleHTTPClientTestMixin.get_http_server¨   r¶   r6   c                ó   € \        4       hrC   r²   ©r1   rº   s   &,r3   Úcreate_clientÚ'SimpleHTTPClientTestMixin.create_client«   r¶   r6   c                ót  € \         P                  ! 4       V n        \        \	        R \
        \        V P                  V P                  R7      4      \	        R\        4      \	        R\        RR7      \	        R\        4      \	        R\        4      \	        R\        4      \	        R	\        4      \	        R
\        4      \	        R\        4      \	        R\         4      \	        R\"        4      \	        R\$        4      \	        R\&        4      \	        R\(        4      \	        R\*        4      \	        R\,        4      .RR7      # )ú/triggerrD   z/chunkz/countdown/([0-9]+)Ú	countdown)Únameú/helloz/content_lengthú/headú/optionsú/no_contentú/see_other_postr„   ú
/host_echoú/no_content_lengthú
/echo_postú/respond_in_preparez	/redirectú/user_agentT)Úgzip)ÚcollectionsÚdequeÚtriggersr&   r'   rA   ÚdictÚstopr   r   r   rW   rf   rn   rv   r   rŽ   r“   r™   rž   r¢   r   r   r^   s   &r3   Úmixin_get_appÚ'SimpleHTTPClientTestMixin.mixin_get_app®   sù   € ô ×ÒÓð 	Œô äØÜ"Ü˜tŸ}™}¸D¿I¹IÔFóô
 �HœlÓ+ÜÐ)Ô+;À+ÔNÜ�HÔ/Ó0ÜÐ%Ô';Ó<Ü�Gœ[Ó)Ü�J¤Ó/Ü�MÔ#3Ó4ÜÐ%Ô':Ó;ÜÐ$Ô&8Ó9Ü�L¤/Ó2ÜÐ(Ô*@ÓAÜ�L¤/Ó2ÜÐ)Ô+BÓCÜ�K¤Ó1Ü�MÔ#3Ó4ð)ð, ô/
ð 	
r6   c                ó†  € V P                  \        4       \        4       4       V P                  \        4       \        R R7      4       \        \	        RR7      4      ;_uu_ 4       pR pV P
                  P                  V4      pVP                  V4      pV P                  W44       RRR4       R#   + '       g   i     R# ; i)Tr,   F)Úmake_currentc               “   ó^   "  € \         P                  ! ^ 4      G Rj  x€L
  \        4       #  L5i)r   N)r   Úsleepr   r7   r6   r3   Úmake_clientÚ=SimpleHTTPClientTestMixin.test_singleton.<locals>.make_client×   s$   é € Ü—i’i “l×"Ð"Ü,Ó.Ð.ñ #ùs   ‚-œ+�-N)ÚassertIsr   ÚassertIsNotr   r   Úio_loopÚrun_sync)r1   Úio_loop2rí   Úclient1Úclient2s   &    r3   Útest_singletonÚ(SimpleHTTPClientTestMixin.test_singletonÍ   s�   € à�‰Ô+Ó-Ô/DÓ/FÔGà×ÑÜ!Ó#Ô%:È$Ô%Oô	
ô ”V¨Ô/×0Ô0°Hò/ð —l‘l×+Ñ+¨KÓ8ˆGØ×'Ñ'¨Ó4ˆGØ×Ñ˜WÔ.÷ 1×0×0Ò0ús   Á$AB/Â/C 	c                ó,  a a€ \        S P                  ^R7      4      ;_uu_ 4       pS P                  VP                  ^4       . o\	        ^4       F<  pV3VV 3R llpVP                  S P                  R4      4      P                  V4       K>  	  S P                  V 3R lR7       S P                  \        VP                  4      ^4       S P                  P                  4       ! 4        S P                  P                  4       ! 4        S P                  VV 3R lR7       S P                  \        S4      ^ ^04       S P                  \        VP                  4      ^ 4       S P                  P                  4       ! 4        S P                  P                  4       ! 4        S P                  V3R lR7       S P                  \        S4      0 R	m4       S P                  \        S P                  4      ^ 4       RRR4       R#   + '       g   i     R# ; i)
r¬   ©Úmax_clientsc                 óJ   <€ SP                  V4       SP                  4        R # rC   )rN   ræ   )ÚfutÚiÚseenr1   s   &&€€r3   ÚcbÚ;SimpleHTTPClientTestMixin.test_connection_limit.<locals>.cbç   s   ø€ Ø—K‘K ”NØ—I‘I–Kr6   rÔ   c                  ó4   <€ \        S P                  4      ^8H  # ©r¬   ©Úlenrä   r^   s   €r3   Ú<lambda>ÚASimpleHTTPClientTestMixin.test_connection_limit.<locals>.<lambda>ì   s   ø€ ¬¨D¯M©MÓ(:¸aÒ(?r6   )Ú	conditionc                  ó`   <€ \        SP                  4      ^8H  ;'       d    \        S 4      ^8H  # r  r  )rþ   r1   s   €€r3   r  r  ò   s'   ø€ ¬¨T¯]©]Ó);¸qÑ)@×)SÐ)SÄSÈÃYÐRSÁ^Ð)Sr6   c                  ó    <€ \        S 4      ^8H  # )é   )r  )rþ   s   €r3   r  r  ù   s   ø€ ¬¨D«	°Qªr6   N>   r   é   r¬   é   )r   rÑ   ÚassertEqualrú   ÚrangerÀ   rÅ   Úadd_done_callbackrQ   r  rE   rä   ÚpopleftrO   )r1   r2   rý   rÿ   rþ   s   f   @r3   Útest_connection_limitÚ/SimpleHTTPClientTestMixin.test_connection_limitß   s}  ù€ Ü�T×'Ñ'°AÐ'Ó6×7Ô7¸6Ø×Ñ˜V×/Ñ/°Ô3ØˆDô ˜1–X�à÷  ð  ð —‘˜TŸ\™\¨*Ó5Ó6×HÑHÈÖLñ ð �I‰IÔ ?ˆIÔ@Ø×ÑœS §¡Ó.°Ô2ð �M‰M×!Ñ!Ô#Ô%Ø�M‰M×!Ñ!Ô#Ô%Ø�I‰IÕ TˆIÔUØ×ÑœS ›Y¨¨A¨Ô/Ø×ÑœS §¡Ó.°Ô2ð �M‰M×!Ñ!Ô#Ô%Ø�M‰M×!Ñ!Ô#Ô%Ø�I‰IÔ 6ˆIÔ7Ø×ÑœS ›YªÔ5Ø×ÑœS §¡Ó/°Ô3÷7 8×7×7Ò7ús   ¦GHÈH	c              #  óö   "  € \        V P                  ^R7      4      ;_uu_ 4       pVP                  V P                  R4      ^R7      x €pVP	                  4        RRR4       R#   + '       g   i     R# ; i5i)r  rù   z/countdown/3©Úmax_redirectsN)r   rÑ   rÀ   rÅ   Úrethrow)r1   r2   Úresponses   &  r3   Útest_redirect_connection_limitÚ8SimpleHTTPClientTestMixin.test_redirect_connection_limitý   s[   é € ô �T×'Ñ'°AÐ'Ó6×7Ô7¸6Ø#Ÿ\™\¨$¯,©,°~Ó*FÐVW˜\ÓXÑXˆHØ×ÑÔ÷ 8×7×7Ò7üs   ‚$A9¦5A%Á
A9Á%A6	Á0	A9c                ó‚  € V P                  R ^R7      pV P                  RVP                  4       V P                  VP                  P
                  P                  R 4      4       V P                  VP                  P                  R4      4       V P                  VP                  R,          P                  R4      4       R# )z/countdown/5r  r�   z/countdown/2rƒ   z/countdown/1N)	rÀ   r  Úcoder.   r‡   r'   ÚendswithÚeffective_urlr–   ©r1   r  s   & r3   Útest_max_redirectsÚ,SimpleHTTPClientTestMixin.test_max_redirects  sŒ   € Ø—:‘:˜n¸A�:Ó>ˆØ×Ñ˜˜hŸm™mÔ,ð 	�‰˜×(Ñ(×,Ñ,×5Ñ5°nÓEÔFØ�‰˜×.Ñ.×7Ñ7¸ÓGÔHØ�‰˜×(Ñ(¨Õ4×=Ñ=¸nÓMÖNr6   c                óš   € \        R R/4      pV P                  RVR7       V P                  \        VP	                  4       4      R.4       R# )ú
User-AgentÚFoor×   )r–   N)r"  r#  )r   rÀ   r  ÚlistÚget_all)r1   r–   s   & r3   Útest_header_reuseÚ+SimpleHTTPClientTestMixin.test_header_reuse  sC   € ô ˜|¨UÐ3Ó4ˆØ�
‰
�8 Wˆ
Ô-Ø×Ñœ˜gŸo™oÓ/Ó0Ð3HÐ2IÖJr6   c                óÆ   € V P                  R RR7      pV P                  ^ÈVP                  4       V P                  VP                  P	                  4       R\
         24       R# )rà   ÚGET©ÚmethodzTornado/N)rÀ   r  r  rˆ   Údecoder   r  s   & r3   Útest_default_user_agentÚ1SimpleHTTPClientTestMixin.test_default_user_agent  sL   € Ø—:‘:˜m°E�:Ó:ˆØ×Ñ˜˜hŸm™mÔ,Ø×Ñ˜Ÿ™×-Ñ-Ó/°8¼G¸9Ð1EÖFr6   c                óŽ  € R F¾  pV P                  RRRV,          R7      pV P                  ^ÈVP                  4       V P                  VP                  P
                  P                  R4      4       V P                  VP                  P                  R4      4       V P                  RVP                  P                  4       KÀ  	  R# )r�   rÛ   ÚPOSTz%d)r+  rˆ   r„   Nr…   )	rÀ   r  r  r.   r‡   r'   r  r  r+  )r1   r  r  s   &  r3   Útest_see_other_redirectÚ1SimpleHTTPClientTestMixin.test_see_other_redirect  s˜   € ÛˆDØ—z‘zÐ"3¸FÈÐPTÍ�zÓUˆHØ×Ñ˜S (§-¡-Ô0Ø�O‰O˜H×,Ñ,×0Ñ0×9Ñ9Ð:KÓLÔMØ�O‰O˜H×2Ñ2×;Ñ;Ð<LÓMÔNà×Ñ˜V X×%5Ñ%5×%<Ñ%<Ö=ó r6   c              #  óê  aa"  € R p\        4       oV o ! VV3R lR\        4      p\        V P                  V! 4       R7      4      ;_uu_ 4       pV P	                  \
        4      ;_uu_ 4        VP                  V P                  R4      VRRR7      x € RRR4       RRR4       SP                  4        \        P                  ! R	4      x € R#   + '       g   i     LB; i  + '       g   i     LM; i5i)
çš™™™™™¹?c                   ó0   <a € ] tR tRt o VV3R ltRtV tR# )ÚGSimpleHTTPClientTestMixin.test_connect_timeout.<locals>.TimeoutResolveri)  c              Ÿ  ó†   <"  € SP                  4       G R j  x€L
  \        P                  RSP                  4       33.#  L'5i)Nú	127.0.0.1)rQ   ÚsocketÚAF_INETr´   )r1   Úargsrº   Úcleanup_eventÚtests   &*,€€r3   ÚresolveÚOSimpleHTTPClientTestMixin.test_connect_timeout.<locals>.TimeoutResolver.resolve*  s=   øé € Ø#×(Ñ(Ó*×*Ð*äŸ™¨+°t×7IÑ7IÓ7KÐ)LÐMÐNÐNñ +ùs   ƒA—?˜(Ar7   N)r8   r9   r:   r;   r>  r<   r=   )r?   r<  r=  s   @€€r3   ÚTimeoutResolverr6  )  s   ù‡ € ÷Oô Or6   r@  ©Úresolverr×   i  T)Úconnect_timeoutÚrequest_timeoutr¹   Nçš™™™™™É?)r   r   r   rÑ   ÚassertRaisesr   rÀ   rÅ   rO   r   rì   )r1   Útimeoutr@  r2   r<  r=  s   &   @@r3   Útest_connect_timeoutÚ.SimpleHTTPClientTestMixin.test_connect_timeout"  sÁ   ùé € àˆä›ˆØˆ÷	Oð 	Oœhô 	Oô �T×'Ñ'±Ó1BÐ'ÓC×DÔDÈØ×"Ñ"Ô#3×4Õ4Ø—l‘lØ—L‘L Ó*Ø$+Ø$(Ø $ð	 #ó ò ÷ 5÷ Eð 	×ÑÔÜ�iŠi˜‹nÔ÷ 5×4ú÷ E×Düs6   „A
C3ÁC Á,'C	ÂC Â2C3ÃCÃC Ã C0	Ã+C3c                óH  € R p\         P                  R8X  d   RpV P                  \        4      ;_uu_ 4        V P	                  RVRR7       RRR4       V P
                  P                  4       ! 4        V P                  P                  R 4       R#   + '       g   i     LM; i)rE  Úntg      à?z/trigger?wake=falseT)rD  r¹   Nc                  ó.   € \         P                  ! ^ 4      # ©r   ©r   rì   r7   r6   r3   r  Ú@SimpleHTTPClientTestMixin.test_request_timeout.<locals>.<lambda>G  ó   € ¤c§i¢i°¤lr6   )	ÚosrÖ   rF  r   rÀ   rä   r  rñ   rò   )r1   rG  s   & r3   Útest_request_timeoutÚ.SimpleHTTPClientTestMixin.test_request_timeout>  ss   € ØˆÜ�7‰7�dŒ?ØˆGà×ÑÔ/×0Õ0Ø�J‰JÐ,¸gÐSWˆJÔX÷ 1ð 	�‰×ÑÔÔ!Ø�‰×ÑÑ2Ö3÷	 1×0ús   ·BÂB!	c                óÔ  € \        ^ R\        P                  R7      w  pVP                  4       ^,          pV P	                  4       P                  V4       RV P                  4       V3,          pV P                  \        4      ;_uu_ 4        V P                  VRRR7       RRR4       V P                  V4      pV P                  VP                  R4       R#   + '       g   i     L?; i)	r   z::1)Úfamilyz%s://[::1]:%d/helloFT)Ú
allow_ipv6r¹   Nó   Hello world!)r   r9  ÚAF_INET6ÚgetsocknamerÍ   Ú
add_socketrÉ   rF  r�   rÀ   r  rˆ   )r1   ÚsockÚportr'   r  s   &    r3   Ú	test_ipv6Ú#SimpleHTTPClientTestMixin.test_ipv6I  s®   € ä˜a ¬v¯©Ô?‰ˆØ×ÑÓ! !Õ$ˆØ×ÑÓ×)Ñ)¨$Ô/Ø# t×'8Ñ'8Ó':¸DÐ&AÕAˆð ×Ñœy×)Õ)Ø�J‰J�s u¸$ˆJÔ?÷ *ð —:‘:˜c“?ˆØ×Ñ˜Ÿ™¨Ö8÷	 *×)ús   ÂCÃC'	c           	     ót  € V P                  R 4      pV P                  VP                  R4       V P                  R4      pV P                  VP                  R4       \        \        R\
        P                  R7      ;_uu_ 4        V P                  \        4      ;_uu_ 4        V P                  RRR7       RRR4       V P                  \        4      ;_uu_ 4        V P                  R	RR7       RRR4       RRR4       R#   + '       g   i     LS; i  + '       g   i     L-; i  + '       g   i     R# ; i)
z/content_length?value=2,2ó   okz/content_length?value=2,%202,2z".*Multiple unequal Content-Lengths©Úlevelz/content_length?value=2,4T©r¹   Nz/content_length?value=2,%202,3)	rÀ   r  rˆ   r    r   rL   ÚINFOrF  r   r  s   & r3   Ú%test_multiple_content_length_acceptedÚ?SimpleHTTPClientTestMixin.test_multiple_content_length_acceptedW  sÝ   € Ø—:‘:Ð9Ó:ˆØ×Ñ˜Ÿ™¨Ô.Ø—:‘:Ð>Ó?ˆØ×Ñ˜Ÿ™¨Ô.äÜÐ9ÄÇÁ÷
ö 
ð ×"Ñ"Ô#8×9Õ9Ø—
‘
Ð6ÀD�
ÔI÷ :à×"Ñ"Ô#8×9Õ9Ø—
‘
Ð;È�
ÔN÷ :÷
ñ 
÷ :×9úç9×9ú÷
÷ 
ð 
ús<   ÂD&Â!D 	Â5%D&ÃD	Ã.D&Ä DÄD&ÄD#ÄD&Ä&D7	c                óà   € V P                  R RR7      pV P                  VP                  ^È4       V P                  VP                  R,          R4       V P	                  VP
                  4       R# )rØ   ÚHEADr*  úcontent-lengthri   N)rÀ   r  r  r–   ÚassertFalserˆ   r  s   & r3   Útest_head_requestÚ+SimpleHTTPClientTestMixin.test_head_requeste  sV   € Ø—:‘:˜g¨f�:Ó5ˆØ×Ñ˜Ÿ™¨Ô,Ø×Ñ˜×)Ñ)Ð*:Õ;¸SÔAØ×Ñ˜Ÿ™Ö'r6   c                ó(  € V P                  R RR7      pV P                  VP                  ^È4       V P                  VP                  R,          R4       V P                  VP                  R,          R4       V P                  VP                  R4       R# )	rÙ   ÚOPTIONSr*  ri  Ú2zaccess-control-allow-originrp   r`  N)rÀ   r  r  r–   rˆ   r  s   & r3   Útest_options_requestÚ.SimpleHTTPClientTestMixin.test_options_requestk  st   € Ø—:‘:˜j°�:Ó;ˆØ×Ñ˜Ÿ™¨Ô,Ø×Ñ˜×)Ñ)Ð*:Õ;¸SÔAØ×Ñ˜×)Ñ)Ð*GÕHÈ#ÔNØ×Ñ˜Ÿ™¨Ö.r6   c                ó˜   € V P                  R 4      pV P                  VP                  ^Ì4       V P                  RVP                  4       R# )rÚ   rh   N)rÀ   r  r  ÚassertNotInr–   r  s   & r3   Útest_no_contentÚ)SimpleHTTPClientTestMixin.test_no_contentr  s=   € Ø—:‘:˜mÓ,ˆØ×Ñ˜Ÿ™¨Ô,ð
 	×ÑÐ)¨8×+;Ñ+;Ö<r6   c                óv  € \         P                  ! R 4      pV P                  R4      pV P                  VP	                  VP
                  4      4       V P                  R4      P                  RR4      pV P                  V4      pV P                  VP	                  VP
                  4      VP
                  4       R# )s   ^127.0.0.1:[0-9]+$rÜ   zhttp://zhttp://me:secret@N)ÚreÚcompilerÀ   r.   Úmatchrˆ   rÅ   Úreplace)r1   Úhost_rer  r'   s   &   r3   Útest_host_headerÚ*SimpleHTTPClientTestMixin.test_host_header{  s€   € Ü—*’*Ð2Ó3ˆØ—:‘:˜lÓ+ˆØ�‰˜Ÿ™ h§m¡mÓ4Ô5à�l‰l˜<Ó(×0Ñ0°Ð<OÓPˆØ—:‘:˜c“?ˆØ�‰˜Ÿ™ h§m¡mÓ4°h·m±mÖDr6   c           	     ór  € \        4       w  rV P                  V4       \        \        R RR7      ;_uu_ 4        V P	                  \
        P                  4      ;_uu_ 4       pV P                  RV,          RR7       RRR4       RRR4       \        P                  R8w  dð   \        \        P                  4      \        XP                  4      9   pV'       gF   \        \        R4      '       d0   \        \        P                  4      \        VP                  4      9   pV P!                  WCP                  4       \"        P$                  ! \        P                  4      pV P!                  V\        VP                  4      9   VP                  4       R# R#   + '       g   i     EL; i  + '       g   i     EL+; i)	ú.*F©Úrequiredzhttp://127.0.0.1:%d/Trc  NÚcygwinÚWSAECONNREFUSED)r$   Ú
addCleanupr    r   rF  r9  ÚerrorrÀ   ÚsysÚplatformr»   ÚerrnoÚECONNREFUSEDÚ	exceptionÚhasattrrƒ  r.   rQ  Ústrerror)r1   Úcleanup_funcr\  ÚcmÚcontains_errnoÚexpected_messages   &     r3   Útest_connection_refusedÚ1SimpleHTTPClientTestMixin.test_connection_refused„  s%  € Ü*›_ÑˆØ�‰˜Ô%Ü”w ¨u×5Ö5Ø×"Ñ"¤6§<¡<×0Ô0°BØ—
‘
Ð1°DÕ8Àd�
ÔK÷ 1÷ 6ô �<‰<˜8Ô#ä ¤×!3Ñ!3Ó4¼¸B¿L¹LÓ8IÑIˆNß!¤g¬eÐ5F×&GÒ&GÜ!$¤U×%:Ñ%:Ó!;¼sØ—L‘Ló@ñ "�ð �O‰O˜N¯L©LÔ9ô  "Ÿ{š{¬5×+=Ñ+=Ó>ÐØ�O‰OÐ,´°B·L±LÓ0AÑAÀ2Ç<Á<ÖPñ $÷ 1×0Ð0ú÷ 6×5Ð5ús#   ¸(F%Á F	Á;F%ÆF"Æ	F%Æ%F6	c           	     óh  a aa€ \        S P                  ^R7      4      ;_uu_ 4       oSP                  S P                  R4      ^
R7      oS P	                  4        S P                  \        4      ;_uu_ 4       pS P                  P                  VV 3R l4       RRR4       S P                  \        XP                  4      R4       S P                  P                  4       ! 4        S P                  P                  V3R l4       RRR4       R#   + '       g   i     L}; i  + '       g   i     R# ; i)r  rù   rÔ   )rD  c                  óJ   <€ S P                  SP                  R 4      RRR7      # )r×   r4  T©rC  r¹   )rÀ   rÅ   )r2   r1   s   €€r3   r  Ú>SimpleHTTPClientTestMixin.test_queue_timeout.<locals>.<lambda>Ÿ  s$   ø€ ˜FŸL™LØŸ™ XÓ.ÀÐQUð )ô r6   NzTimeout in request queuec                  ó   <€ S # rC   r7   )Úfut1s   €r3   r  r–  ¦  s   ø€ ©$r6   )r   rÑ   rÀ   rÅ   rQ   rF  r   rñ   rò   r  r»   rŠ  rä   r  )r1   rŽ  r2   r˜  s   f @@r3   Útest_queue_timeoutÚ,SimpleHTTPClientTestMixin.test_queue_timeout˜  sÐ   ú€ Ü�T×'Ñ'°AÐ'Ó6×7Ô7¸6à—<‘< §¡¨ZÓ 8È"�<ÓMˆDØ�I‰IŒKØ×"Ñ"Ô#3×4Ô4¸Ø—‘×%Ñ%õô÷ 5ð ×ÑœS §¡Ó.Ð0JÔKØ�M‰M×!Ñ!Ô#Ô%Ø�L‰L×!Ñ!¤,Ô/÷ 8Ñ7÷ 5×4ú÷	 8×7Ð7ús%   §AD Á7!D	ÂA+D ÄDÄD Ä D1	c                ó¨   € V P                  R 4      pVP                  R8X  d   V P                  R4       R# V P                  RVP                  4       R# )rÝ   s   HTTP/1 requiredúrequires HTTP/1.xs   helloN)rÀ   rˆ   ÚskipTestr  r  s   & r3   Útest_no_content_lengthÚ0SimpleHTTPClientTestMixin.test_no_content_length¨  s?   € Ø—:‘:Ð2Ó3ˆØ�=‰=Ð.Ô.Ø�M‰MÐ-Ö.à×Ñ˜X x§}¡}Ö5r6   c                ó&   € V! R 4       V! R4       R# ©ó   1234ó   5678Nr7   ©r1   rb   s   &&r3   Úsync_body_producerÚ,SimpleHTTPClientTestMixin.sync_body_producer¯  s   € ÙˆgŒÙˆgŽr6   c              #  óZ   "  € V! R 4      x € \         P                  x € V! R4      x € R# 5ir¡  )r   Úmomentr¤  s   &&r3   Úasync_body_producerÚ-SimpleHTTPClientTestMixin.async_body_producer³  s#   é € á�G‹nÒÜ�j‰jÒÙ�G‹nÔùs   ‚)+c                óš   € V P                  R RV P                  R7      pVP                  4        V P                  VP                  R4       R# ©rÞ   r0  ©r+  Úbody_produceró   12345678N©rÀ   r¥  r  r  rˆ   r  s   & r3   Útest_sync_body_producer_chunkedÚ9SimpleHTTPClientTestMixin.test_sync_body_producer_chunked¹  sD   € Ø—:‘:Ø °t×7NÑ7Nð ó 
ˆð 	×ÑÔØ×Ñ˜Ÿ™¨Ö4r6   c                ó    € V P                  R RV P                  RR/R7      pVP                  4        V P                  VP                  R4       R# ©rÞ   r0  rh   Ú8©r+  r®  r–   r¯  Nr°  r  s   & r3   Ú&test_sync_body_producer_content_lengthÚ@SimpleHTTPClientTestMixin.test_sync_body_producer_content_lengthÀ  sN   € Ø—:‘:ØØØ×1Ñ1Ø% sÐ+ð	 ó 
ˆð 	×ÑÔØ×Ñ˜Ÿ™¨Ö4r6   c                óš   € V P                  R RV P                  R7      pVP                  4        V P                  VP                  R4       R# r¬  ©rÀ   r©  r  r  rˆ   r  s   & r3   Ú test_async_body_producer_chunkedÚ:SimpleHTTPClientTestMixin.test_async_body_producer_chunkedÊ  sD   € Ø—:‘:Ø °t×7OÑ7Oð ó 
ˆð 	×ÑÔØ×Ñ˜Ÿ™¨Ö4r6   c                ó    € V P                  R RV P                  RR/R7      pVP                  4        V P                  VP                  R4       R# r´  rº  r  s   & r3   Ú'test_async_body_producer_content_lengthÚASimpleHTTPClientTestMixin.test_async_body_producer_content_lengthÑ  sN   € Ø—:‘:ØØØ×2Ñ2Ø% sÐ+ð	 ó 
ˆð 	×ÑÔØ×Ñ˜Ÿ™¨Ö4r6   c                óŒ   € R  pV P                  RRVR7      pVP                  4        V P                  VP                  R4       R# )c              “   ó”   "  € V ! R 4      G Rj  x€L
  ^ RI pVP                  ^ 4      G Rj  x€L
  V ! R4      G Rj  x€L
  R#  L3 L L
5i©r¢  Nr£  ©Úasynciorì   ©rb   rÄ  s   & r3   r®  ÚRSimpleHTTPClientTestMixin.test_native_body_producer_chunked.<locals>.body_producerÜ  óA   é € Ù˜“.× Ð Ûà—-‘- Ó"×"Ð"Ù˜“.× Ò ñ	 !ñ #Ù ùó/   ‚AŽA�A«A¬A»A¼AÁAÁArÞ   r0  r­  r¯  N©rÀ   r  r  rˆ   ©r1   r®  r  s   &  r3   Ú!test_native_body_producer_chunkedÚ;SimpleHTTPClientTestMixin.test_native_body_producer_chunkedÛ  s=   € ò	!ð —:‘:˜l°6È�:ÓWˆØ×ÑÔØ×Ñ˜Ÿ™¨Ö4r6   c                ó’   € R  pV P                  RRVRR/R7      pVP                  4        V P                  VP                  R4       R# )c              “   ó”   "  € V ! R 4      G Rj  x€L
  ^ RI pVP                  ^ 4      G Rj  x€L
  V ! R4      G Rj  x€L
  R#  L3 L L
5irÂ  rÃ  rÅ  s   & r3   r®  ÚYSimpleHTTPClientTestMixin.test_native_body_producer_content_length.<locals>.body_producerè  rÇ  rÈ  rÞ   r0  rh   rµ  r¶  r¯  NrÉ  rÊ  s   &  r3   Ú(test_native_body_producer_content_lengthÚBSimpleHTTPClientTestMixin.test_native_body_producer_content_lengthç  sO   € ò	!ð —:‘:ØØØ'Ø% sÐ+ð	 ó 
ˆð 	×ÑÔØ×Ñ˜Ÿ™¨Ö4r6   c                óh   € V P                  R RRRR7      pV P                  VP                  R4       R# )rÞ   r0  r¢  T)r+  rˆ   Úexpect_100_continueN)rÀ   r  rˆ   r  s   & r3   Útest_100_continueÚ+SimpleHTTPClientTestMixin.test_100_continueø  s4   € Ø—:‘:Ø ¨gÈ4ð ó 
ˆð 	×Ñ˜Ÿ™¨Ö0r6   c                ón   € R  pV P                  RRVRR7      pV P                  VP                  R4       R# )c                 ó   € \        R 4      h)zshould not be called)r�   ©rb   s   &r3   r®  ÚQSimpleHTTPClientTestMixin.test_100_continue_early_response.<locals>.body_producerÿ  s   € ÜÐ2Ó3Ð3r6   rß   r0  T)r+  r®  rÓ  r¤   N)rÀ   r  r  rÊ  s   &  r3   Ú test_100_continue_early_responseÚ:SimpleHTTPClientTestMixin.test_100_continue_early_responseþ  s>   € ò	4ð —:‘:Ø!ØØ'Ø $ð	 ó 
ˆð 	×Ñ˜Ÿ™¨Ö,r6   c                óJ  € . p. pV P                  R VP                  VP                  R7       \        \        \        V4      4      pV P                  VR.4       \        V Uu. uF  qDP                  R4      '       g   K  VNK  	  up4      pV P                  V^4       R# u upi )z/redirect?url=/hello)Úheader_callbackÚstreaming_callbackzHello world!zHTTP/N)rÀ   rN   r$  Úmapr   r  r  r›   )r1   r–   Úchunk_bytesÚchunksÚhÚnum_start_liness   &     r3   Útest_streaming_follow_redirectsÚ9SimpleHTTPClientTestMixin.test_streaming_follow_redirects
  s’   € ð ˆØˆØ�
‰
Ø"Ø#ŸN™NØ*×1Ñ1ð 	ô 	
ô
 ”cœ* kÓ2Ó3ˆØ×Ñ˜ .Ð!1Ô2ä©'ÓK©' Q·\±\À'×5JŸq˜q©'ÑKÓLˆØ×Ñ˜¨!Ö,ùò Ls   Á"B Á?B )rä   N)F).r8   r9   r:   r;   r´   rÀ   rÅ   rÉ   rÍ   rÑ   rç   rö   r  r!   r  r  r&  r-  r1  rH  rR  r#   r]  re  rk  rp  rt  r|  r‘  r™  rž  r¥  r   rU   r©  r±  r·  r»  r¾  rË  rÐ  rÔ  rÚ  rä  r<   r=   r>   s   @r3   r©   r©   –   s  ø‡ € ÷$ð $÷$ò $÷$ð $÷$ð $÷$ð $ò$ò
ò>/ò$4ð< ñó ðòOòKòGò
>ð ñó ðò6	4ð ñ9ó ð9òOò(ò/ò=òEòQò(0ò 6òð 	‡]�]ñó ðò
5ò5ò5ò5ò
5ò5ò"1ò
-÷-ð -r6   r©   c                   ó>   a a€ ] tR tRt oV 3R ltR tR tRtVtV ;t	# )ÚSimpleHTTPClientTestCasei  c                óN   <€ \         SV `  4        V P                  4       V n        R # rC   ©ÚsuperÚsetUprÑ   Úhttp_client©r1   Ú	__class__s   &€r3   rë  ÚSimpleHTTPClientTestCase.setUp   ó   ø€ Ü‰‰ŒØ×-Ñ-Ó/ˆÖr6   c                ó"   € V P                  4       # rC   ©rç   r^   s   &r3   Úget_appÚ SimpleHTTPClientTestCase.get_app$  ó   € Ø×!Ñ!Ó#Ð#r6   c                ó   € \        RR R/VB # )r-   Tr7   ©r   rÐ   s   &,r3   rÑ   Ú&SimpleHTTPClientTestCase.create_client'  s   € Ü$ÑC°DÐC¸FÑCÐCr6   ©rì  )
r8   r9   r:   r;   rë  ró  rÑ   r<   r=   Ú__classcell__©rî  r?   s   @@r3   rç  rç    s   ù‡ € õ0ò$÷Dò Dr6   rç  c                   ó\   a a€ ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
tVtV ;t# )ÚSimpleHTTPSClientTestCasei+  c                óN   <€ \         SV `  4        V P                  4       V n        R # rC   ré  rí  s   &€r3   rë  ÚSimpleHTTPSClientTestCase.setUp,  rð  r6   c                ó"   € V P                  4       # rC   rò  r^   s   &r3   ró  Ú!SimpleHTTPSClientTestCase.get_app0  rõ  r6   c           
     ó4   € \        RR RR\        RR7      /VB # )r-   TÚdefaultsF)Úvalidate_certr7   )r   rå   rÐ   s   &,r3   rÑ   Ú'SimpleHTTPSClientTestCase.create_client3  s,   € Ü$ñ 
Øð
Ü*.¸UÔ*Cð
ØGMñ
ð 	
r6   c                ó„   € V P                  R R\        P                  /R7      pV P                  VP                  R4       R# )r×   Ú	cert_reqs©Ússl_optionsrW  N)rÀ   ÚsslÚ	CERT_NONEr  rˆ   ©r1   Úresps   & r3   Útest_ssl_optionsÚ*SimpleHTTPSClientTestCase.test_ssl_options8  s1   € Ø�z‰z˜(°¼c¿m¹mÐ0LˆzÓMˆØ×Ñ˜Ÿ™ OÖ4r6   c                óø   € \         P                  ! \         P                  P                  4      pR Vn        \         P
                  Vn        V P                  RVR7      pV P                  VP                  R4       R# )Fr×   r  rW  N)
r
  Úcreate_default_contextÚPurposeÚSERVER_AUTHÚcheck_hostnamer  Úverify_moderÀ   r  rˆ   )r1   Ússl_ctxr  s   &  r3   Útest_ssl_contextÚ*SimpleHTTPSClientTestCase.test_ssl_context<  sV   € Ü×,Ò,¬S¯[©[×-DÑ-DÓEˆØ!&ˆÔÜ!Ÿm™mˆÔØ�z‰z˜(°ˆzÓ8ˆØ×Ñ˜Ÿ™ OÖ4r6   c                óR  € \        \        R RR7      ;_uu_ 4        V P                  \        P                  4      ;_uu_ 4        V P                  R\        \        P                  R7      RR7       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)úSSL Error|Uncaught exceptionFr€  r×   )r  T©r	  r¹   N)r    r   rF  r
  ÚSSLErrorrÀ   rå   ÚCERT_REQUIREDr^   s   &r3   Útest_ssl_options_handshake_failÚ9SimpleHTTPSClientTestCase.test_ssl_options_handshake_failC  sn   € Ü”wÐ >È×OÖOØ×"Ñ"¤3§<¡<×0Õ0Ø—
‘
ØÜ $¬s×/@Ñ/@Ô AØ $ð ô ÷ 1÷ PÑOß0×0ú÷ P×OÐOús#   ›(BÁ-B	Á0BÂBÂBÂB&	c           
     óz  € \        \        R 4      ;_uu_ 4        \        P                  ! \        P                  P
                  4      pV P                  \        P                  4      ;_uu_ 4        V P                  RVRR7       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r  r×   Tr  N)	r    r   r
  r  r  r  rF  r  rÀ   )r1   Úctxs   & r3   Útest_ssl_context_handshake_failÚ9SimpleHTTPSClientTestCase.test_ssl_context_handshake_failL  su   € Ü”wÐ >×?Õ?ä×,Ò,¬S¯[©[×-DÑ-DÓEˆCØ×"Ñ"¤3§<¡<×0Õ0Ø—
‘
˜8°À$�
ÔG÷ 1÷ @Ñ?÷ 1×0ú÷ @×?Ð?ús$   ™AB)Á/B	ÂB)ÂB&Â!B)Â)B:	c           
     óR  € \        \        R 4      ;_uu_ 4       pV P                  \        P                  4      ;_uu_ 4        V P                  RRRR7       RRR4       RRR4       V P                  XP                  4       R#   + '       g   i     L5; i  + '       g   i     L@; i)r  Ú/T)r  r¹   N)r    r   rF  r
  r  rÀ   rj  Úlogged_stack)r1   Ú
expect_logs   & r3   Útest_error_loggingÚ,SimpleHTTPSClientTestCase.test_error_loggingS  sl   € ô ”w ×%Ô%¨Ø×"Ñ"¤3§<¡<×0Õ0Ø—
‘
˜3¨dÀ�
ÔE÷ 1÷ &ð 	×Ñ˜×0Ñ0Ö1÷ 1×0ú÷ &×%ús#   ™(BÁB	ÁBÂBÂBÂB&	rù  )r8   r9   r:   r;   rë  ró  rÑ   r  r  r  r"  r(  r<   r=   rú  rû  s   @@r3   rý  rý  +  s3   ù‡ € õ0ò$ò
ò
5ò5òòH÷2ò 2r6   rý  c                   óD   a a€ ] tR tRt oV 3R ltV 3R ltR tRtVtV ;t	# )ÚCreateAsyncHTTPClientTestCasei]  c                óX   <€ \         SV `  4        \        P                  ! 4       V n        R # rC   )rê  rë  r   Ú_save_configurationÚsavedrí  s   &€r3   rë  Ú#CreateAsyncHTTPClientTestCase.setUp^  s   ø€ Ü‰‰ŒÜ$×8Ò8Ó:ˆŽ
r6   c                ód   <€ \         P                  ! V P                  4       \        SV `  4        R # rC   )r   Ú_restore_configurationr.  rê  ÚtearDownrí  s   &€r3   r2  Ú&CreateAsyncHTTPClientTestCase.tearDownb  s    ø€ Ü×.Ò.¨t¯z©zÔ:Ü‰ÑÖr6   c                óÐ  € \         P                  ! \        4       \        \        R R7      4      ;_uu_ 4       pV P	                  VP
                  ^
4       RRR4       \        \        ^R R7      4      ;_uu_ 4       pV P	                  VP
                  ^4       RRR4       \         P                  ! \        ^R7       \        \        R R7      4      ;_uu_ 4       pV P	                  VP
                  ^4       RRR4       \        \        ^R R7      4      ;_uu_ 4       pV P	                  VP
                  ^4       RRR4       \        \        ^R R7      4      ;_uu_ 4       pV P	                  VP
                  ^4       RRR4       R#   + '       g   i     EL:; i  + '       g   i     EL; i  + '       g   i     LÀ; i  + '       g   i     L�; i  + '       g   i     R# ; i)Tr,   N)rú   r-   rù   )r   Ú	configurer   r   r  rú   r0   s   & r3   Útest_max_clientsÚ.CreateAsyncHTTPClientTestCase.test_max_clientsf  sA  € Ü×!Ò!Ô"7Ô8Ü”_°DÔ9×:Ô:¸fØ×Ñ˜V×/Ñ/°Ô4÷ ;ä”_°ÀDÔI×JÔJÈfØ×Ñ˜V×/Ñ/°Ô4÷ Kô
 	×!Ò!Ô"7ÀRÕHÜ”_°DÔ9×:Ô:¸fØ×Ñ˜V×/Ñ/°Ô4÷ ;ä”_°ÀDÔI×JÔJÈfØ×Ñ˜V×/Ñ/°Ô4÷ Kä”_°ÀDÔI×JÔJÈfØ×Ñ˜V×/Ñ/°Ô4÷ KÑJ÷ ;×:Ð:úçJ×JÐJú÷ ;×:úçJ×JúçJ×JÐJús;   ¸FÁ;FÃF.ÄGÅGÆF	ÆF+	Æ.F>	ÇG	ÇG%	)r.  )
r8   r9   r:   r;   rë  r2  r6  r<   r=   rú  rû  s   @@r3   r+  r+  ]  s   ù‡ € õ;õ÷5ò 5r6   r+  c                   ó8   a € ] tR tRt o R tR tR tR tRtV t	R# )ÚHTTP100ContinueTestCaseix  c                ó   € VP                   P                  R 4      V n        V P                  '       gL   VP                  P	                  \        R^ÈR4      \        4       4       VP                  P                  4        R# Wn        V P                  P                  P                  P                  R4      pVP                  V P                  4       R# )úHTTP/1.Ú ÚOKNs   HTTP/1.1 100 CONTINUE

)r   r›   Úhttp1Ú
connectionÚwrite_headersr   r   r{   r‡   rZ   rb   r  Úrespond_200)r1   r‡   rü   s   && r3   Úrespond_100Ú#HTTP100ContinueTestCase.respond_100y  s–   € Ø—_‘_×/Ñ/°	Ó:ˆŒ
Ø�z�zˆzØ×Ñ×,Ñ,Ü! " c¨4Ó0´+³-ôð ×Ñ×%Ñ%Ô'ÙØŒØ�l‰l×%Ñ%×,Ñ,×2Ñ2Ð3SÓTˆØ×Ñ˜d×.Ñ.Ö/r6   c                ó°   a € VP                  4        S P                  P                  P                  P	                  R 4      pVP                  V 3R l4       R# )s'   HTTP/1.1 200 OK
Content-Length: 1

Ac                 ó`   <€ SP                   P                  P                  P                  4       # rC   )r‡   r?  rZ   rc   )Úfr1   s   &€r3   r  Ú5HTTP100ContinueTestCase.respond_200.<locals>.<lambda>Š  s   ø€ ¨¯©×(?Ñ(?×(FÑ(F×(LÑ(LÔ(Nr6   N)Úresultr‡   r?  rZ   rb   r  )r1   rü   s   f&r3   rA  Ú#HTTP100ContinueTestCase.respond_200…  s@   ø€ Ø�
‰
ŒØ�l‰l×%Ñ%×,Ñ,×2Ñ2Ø<ó
ˆð 	×ÑÔNÖOr6   c                ó   € V P                   # rC   )rB  r^   s   &r3   ró  ÚHTTP100ContinueTestCase.get_appŒ  s   € à×ÑÐr6   c                ó¦   € V P                  R 4      pV P                  '       g   V P                  R4       V P                  VP                  R4       R# )r%  rœ  ó   AN)rÀ   r>  r�  r  rˆ   )r1   Úress   & r3   rÔ  Ú)HTTP100ContinueTestCase.test_100_continue�  s9   € Ø�j‰j˜‹oˆØ�z�zˆzØ�M‰MÐ-Ô.Ø×Ñ˜Ÿ™ 4Ö(r6   )r>  r‡   N)
r8   r9   r:   r;   rB  rA  ró  rÔ  r<   r=   r>   s   @r3   r9  r9  x  s   ø‡ € ò
0òPò ÷)ð )r6   r9  c                   ó8   a € ] tR tRt o R tR tR tR tRtV t	R# )ÚHTTP204NoContentTestCasei—  c                ó2  € VP                   P                  R 4      V n        V P                  '       gL   VP                  P	                  \        R^ÈR4      \        4       4       VP                  P                  4        R# VP                  P                  4       pVP                  R4       VP                  P                  RR.4      R
,          '       d   VP                  R4       MVP                  R4       VP                  R	4       VP                  4        R# )r;  r<  r=  Ns   HTTP/1.1 204 No content
r…  Fs   Content-Length: 5
s   Content-Length: 0
s   
éÿÿÿÿ)r   r›   r>  r?  r@  r   r   r{   rY   rb   Ú	argumentsrS   rc   )r1   r‡   rZ   s   && r3   Úrespond_204Ú$HTTP204NoContentTestCase.respond_204˜  sÎ   € Ø—_‘_×/Ñ/°	Ó:ˆŒ
Ø�z�zˆzà×Ñ×,Ñ,Ü! " c¨4Ó0´+³-ôð ×Ñ×%Ñ%Ô'Ùð ×#Ñ#×*Ñ*Ó,ˆØ�‰Ð3Ô4Ø×Ñ× Ñ  ¨5¨'Ó2°2×6Ô6Ø�L‰LÐ1Õ2à�L‰LÐ1Ô2Ø�‰�WÔØ�‰Žr6   c                ó   € V P                   # rC   )rU  r^   s   &r3   ró  Ú HTTP204NoContentTestCase.get_app±  s   € Ø×ÑÐr6   c                óÞ   € V P                  R 4      pV P                  '       g   V P                  R4       V P                  VP                  ^Ì4       V P                  VP
                  R4       R# )r%  rœ  r6   N)rÀ   r>  r�  r  r  rˆ   r  s   & r3   Útest_204_no_contentÚ,HTTP204NoContentTestCase.test_204_no_content´  sM   € Ø�z‰z˜#‹ˆØ�z�zˆzØ�M‰MÐ-Ô.Ø×Ñ˜Ÿ™ CÔ(Ø×Ñ˜Ÿ™ CÖ(r6   c           	     óÎ  € \        \        R \        P                  R7      ;_uu_ 4        V P	                  \
        4      ;_uu_ 4        V P                  RRR7       V P                  '       g   V P                  R4       V P                  P                  \        8w  d   V P                  R4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)z-.*Response with code 204 should not have bodyra  z	/?error=1Trc  rœ  z#curl client accepts invalid headersN)r    r   rL   rd  rF  r   rÀ   r>  r�  rì  Úconfigured_classr   r^   s   &r3   Útest_204_invalid_content_lengthÚ8HTTP204NoContentTestCase.test_204_invalid_content_length»  sŸ   € äÜÐDÌGÏLÉL÷
ö 
ð ×"Ñ"Ô#8×9Õ9Ø—
‘
˜;°D�
Ô9Ø—z—z�zØ—M‘MÐ"5Ô6Ø×#Ñ#×4Ñ4Ô8MÔMØ—M‘MÐ"GÔH÷ :÷
ñ 
÷ :×9ú÷
÷ 
ð 
ús$   ©CÁA'C 	Â.CÃ CÃCÃC$	)r>  N)
r8   r9   r:   r;   rU  ró  rZ  r^  r<   r=   r>   s   @r3   rQ  rQ  —  s    ø‡ € òò2 ò)÷
Ið 
Ir6   rQ  c                   óD   a a€ ] tR tRt oV 3R ltR tR tR tRtVt	V ;t
# )ÚHostnameMappingTestCaseiÈ  c                ón   <€ \         SV `  4        \        R RRRV P                  4       3/R7      V n        R# )zwww.example.comr8  )Úhostname_mappingN)zfoo.example.comi@  )rê  rë  r   r´   rì  rí  s   &€r3   rë  ÚHostnameMappingTestCase.setUpÉ  s6   ø€ Ü‰‰ŒÜ0à! ;Ø)¨K¸×9KÑ9KÓ9MÐ+Nðô
ˆÖr6   c                ó6   € \        \        R \        4      .4      # ©r×   ©r&   r'   r   r^   s   &r3   ró  ÚHostnameMappingTestCase.get_appÒ  ó   € ÜœC Ô*;Ó<Ð=Ó>Ð>r6   c                óª   € V P                  R V P                  4       ,          4      pVP                  4        V P                  VP                  R4       R# )zhttp://www.example.com:%d/hellorW  N)rÀ   r´   r  r  rˆ   r  s   & r3   Útest_hostname_mappingÚ-HostnameMappingTestCase.test_hostname_mappingÕ  s?   € Ø—:‘:Ð?À$×BTÑBTÓBVÕVÓWˆØ×ÑÔØ×Ñ˜Ÿ™¨Ö8r6   c                ó€   € V P                  R 4      pVP                  4        V P                  VP                  R4       R# )z!http://foo.example.com:8000/hellorW  NrÉ  r  s   & r3   Útest_port_mappingÚ)HostnameMappingTestCase.test_port_mappingÚ  s1   € Ø—:‘:ÐAÓBˆØ×ÑÔØ×Ñ˜Ÿ™¨Ö8r6   rù  )r8   r9   r:   r;   rë  ró  rk  rn  r<   r=   rú  rû  s   @@r3   ra  ra  È  s   ù‡ € õ
ò?ò9÷
9ò 9r6   ra  c                   ó>   a a€ ] tR tRt oV 3R ltR tR tRtVtV ;t	# )ÚResolveTimeoutTestCaseià  c                ó˜   <a€ \        4       V n        V o ! V3R  lR\        4      p\        SV `  4        \        V! 4       R7      V n        R# )c                   óL   <a € ] tR tRt o ]P
                  V3R l4       tRtV tR# )Ú1ResolveTimeoutTestCase.setUp.<locals>.BadResolveriæ  c              ?  óŠ   <"  € SP                   P                  4       x € \        P                  R SP	                  4       33.# 5i)r8  )r<  rQ   r9  r:  r´   )r1   r;  rº   r=  s   &*,€r3   r>  Ú9ResolveTimeoutTestCase.setUp.<locals>.BadResolver.resolveç  s;   øé € à×(Ñ(×-Ñ-Ó/Ò/äŸ™¨+°t×7IÑ7IÓ7KÐ)LÐMÐNÐNùs   ƒA Ar7   N)	r8   r9   r:   r;   r   rU   r>  r<   r=   )r?   r=  s   @€r3   ÚBadResolverrt  æ  s   ù‡ € Ø�]‰]ôOó öOr6   rw  rA  N)r   r<  r   rê  rë  r   rì  )r1   rw  r=  rî  s   & @€r3   rë  ÚResolveTimeoutTestCase.setUpá  s:   ù€ Ü"›WˆÔØˆ÷	Oœ(ô 	Oô 	‰‰ŒÜ0¹+»-ÔHˆÖr6   c                ó6   € \        \        R \        4      .4      # rf  rg  r^   s   &r3   ró  ÚResolveTimeoutTestCase.get_appð  ri  r6   c                ó  € V P                  \        4      ;_uu_ 4        V P                  R RRR7       RRR4       V P                  P	                  4        V P
                  P                  R 4       R#   + '       g   i     LH; i)r×   r4  Tr•  Nc                  ó.   € \         P                  ! ^ 4      # rM  rN  r7   r6   r3   r  Ú=ResolveTimeoutTestCase.test_resolve_timeout.<locals>.<lambda>ù  rP  r6   )rF  r   rÀ   r<  rO   rñ   rò   r^   s   &r3   Útest_resolve_timeoutÚ+ResolveTimeoutTestCase.test_resolve_timeoutó  s[   € Ø×ÑÔ/×0Õ0Ø�J‰J�x°À$ˆJÔG÷ 1ð 	×Ñ×ÑÔ Ø�‰×ÑÑ2Ö3÷ 1×0ús   žA3Á3B	)r<  rì  )
r8   r9   r:   r;   rë  ró  r~  r<   r=   rú  rû  s   @@r3   rq  rq  à  s   ù‡ € õIò?÷4ò 4r6   rq  c                   ó8   a € ] tR tRt o R tR tR tR tRtV t	R# )ÚMaxHeaderSizeTestiü  c                ó`   €  ! R  R\         4      p ! R R\         4      p\        RV3RV3.4      # )c                   ó&   a € ] tR tRt o R tRtV tR# )Ú/MaxHeaderSizeTest.get_app.<locals>.SmallHeadersiþ  c                óL   € V P                  R R4       V P                  R4       R# )úX-Fillerrq   NÚdaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarr   r^   s   &r3   rS   Ú3MaxHeaderSizeTest.get_app.<locals>.SmallHeaders.getÿ  s   € Ø—‘ 
¨IÔ6Ø—
‘
˜4Ö r6   r7   Nr}   r>   s   @r3   ÚSmallHeadersr„  þ  ó   ø‡ € ÷!ð !r6   r‰  c                   ó&   a € ] tR tRt o R tRtV tR# )Ú/MaxHeaderSizeTest.get_app.<locals>.LargeHeadersi  c                óL   € V P                  R R4       V P                  R4       R# )r†  rq   NÁè  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarr   r^   s   &r3   rS   Ú3MaxHeaderSizeTest.get_app.<locals>.LargeHeaders.get  s   € Ø—‘ 
¨JÔ7Ø—
‘
˜4Ö r6   r7   Nr}   r>   s   @r3   ÚLargeHeadersrŒ    rŠ  r6   r�  ú/smallú/large©r%   r&   )r1   r‰  r�  s   &  r3   ró  ÚMaxHeaderSizeTest.get_appý  s6   € ô	!œ>ô 	!ô
	!œ>ô 	!ô
 ˜X |Ð4°xÀÐ6NÐOÓPÐPr6   c                ó   € \        R R7      # )é   )Úmax_header_sizer÷  r^   s   &r3   r4   Ú!MaxHeaderSizeTest.get_http_client
  s   € Ü$°TÔ:Ð:r6   c                ó€   € V P                  R 4      pVP                  4        V P                  VP                  R4       R# )r‘  r`  NrÉ  r  s   & r3   Útest_small_headersÚ$MaxHeaderSizeTest.test_small_headers  s0   € Ø—:‘:˜hÓ'ˆØ×ÑÔØ×Ñ˜Ÿ™¨Ö.r6   c           	     ó(  € \        \        R \        P                  R7      ;_uu_ 4        V P	                  \
        4      ;_uu_ 4        V P                  RRR7       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)zUnsatisfiable readra  r’  Trc  N)r    r   rL   rd  rF  r   rÀ   r^   s   &r3   Útest_large_headersÚ$MaxHeaderSizeTest.test_large_headers  sZ   € Ü”wÐ 4¼G¿L¹L×IÖIØ×"Ñ"Ô#9×:Õ:Ø—
‘
˜8°�
Ô6÷ ;÷ JÑIß:×:ú÷ J×IÐIúó#   ©B ÁA-	ÁB Á-A=Á8B Â B	r7   N)
r8   r9   r:   r;   ró  r4   rš  r�  r<   r=   r>   s   @r3   r�  r�  ü  s   ø‡ € òQò;ò/÷
7ð 7r6   r�  c                   ó*   a € ] tR tRt o RtR tRtV tR# )Ú#SimpleHTTPClientMaxBodySizeTestCasei  z*Malformed HTTP message from None: {reason}c                ó6   € \        \        P                  R 7      # ))Úmax_body_size)r   r   ÚMAX_BODY_SIZEr^   s   &r3   r4   Ú3SimpleHTTPClientMaxBodySizeTestCase.get_http_client  s   € Ü$´?×3PÑ3PÔQÐQr6   r7   N)r8   r9   r:   r;   Úrefusal_log_formatr4   r<   r=   r>   s   @r3   r¡  r¡    s   ø‡ € ð FÐ÷Rð Rr6   r¡  c                   ó2   a € ] tR tRt o R tR tR tRtV tR# )ÚMaxBufferSizeTesti!  c                ó<   €  ! R  R\         4      p\        RV3.4      # )c                   ó&   a € ] tR tRt o R tRtV tR# )Ú,MaxBufferSizeTest.get_app.<locals>.LargeBodyi#  c                ó6   € V P                  R^d,          4       R# )ÚaNÁ   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarØ  r^   s   &r3   rS   Ú0MaxBufferSizeTest.get_app.<locals>.LargeBody.get$  s   € Ø—
‘
˜:¨Õ+Ö,r6   r7   Nr}   r>   s   @r3   Ú	LargeBodyr«  #  s   ø‡ € ÷-ð -r6   r°  r’  r“  )r1   r°  s   & r3   ró  ÚMaxBufferSizeTest.get_app"  s#   € ô	-œô 	-ô ˜X yÐ1Ð2Ó3Ð3r6   c                ó   € \        RRR7      # )r–  )r£  Úmax_buffer_sizei � i   r÷  r^   s   &r3   r4   Ú!MaxBufferSizeTest.get_http_client)  s   € ä$Ø$°iô
ð 	
r6   c                óŽ   € V P                  R 4      pVP                  4        V P                  VP                  R^d,          4       R# )r’  Ns   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarÉ  r  s   & r3   Útest_large_bodyÚ!MaxBufferSizeTest.test_large_body/  s5   € Ø—:‘:˜hÓ'ˆØ×ÑÔØ×Ñ˜Ÿ™¨°cÕ(9Ö:r6   r7   N)	r8   r9   r:   r;   ró  r4   r¶  r<   r=   r>   s   @r3   r¨  r¨  !  s   ø‡ € ò4ò
÷;ð ;r6   r¨  c                   ó2   a € ] tR tRt o R tR tR tRtV tR# )ÚChunkedWithContentLengthTesti5  c                ó<   €  ! R  R\         4      p\        RV3.4      # )c                   ó&   a € ] tR tRt o R tRtV tR# )ÚFChunkedWithContentLengthTest.get_app.<locals>.ChunkedWithContentLengthi7  c                óL   € V P                  R R4       V P                  R4       R# )zTransfer-EncodingÚchunkedzHello worldNrr   r^   s   &r3   rS   ÚJChunkedWithContentLengthTest.get_app.<locals>.ChunkedWithContentLength.get8  s   € à—‘Ð 3°YÔ?Ø—
‘
˜=Ö)r6   r7   Nr}   r>   s   @r3   ÚChunkedWithContentLengthr¼  7  s   ø‡ € ÷*ð *r6   rÀ  ú/chunkwithclr“  )r1   rÀ  s   & r3   ró  Ú$ChunkedWithContentLengthTest.get_app6  s$   € ô	*¤~ô 	*ô ˜^Ð-EÐFÐGÓHÐHr6   c                ó   € \        4       # rC   r÷  r^   s   &r3   r4   Ú,ChunkedWithContentLengthTest.get_http_client?  s   € Ü$Ó&Ð&r6   c           	     ó(  € \        \        R \        P                  R7      ;_uu_ 4        V P	                  \
        4      ;_uu_ 4        V P                  RRR7       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)zXMalformed HTTP message from None: Message with both Transfer-Encoding and Content-Lengthra  rÁ  Trc  N)r    r   rL   rd  rF  r   rÀ   r^   s   &r3   Ú test_chunked_with_content_lengthÚ=ChunkedWithContentLengthTest.test_chunked_with_content_lengthB  sm   € äÜðAô —,‘,÷
ö 
ð ×"Ñ"Ô#8×9Õ9Ø—
‘
˜>°t�
Ô<÷ :÷
ñ 
÷ :×9ú÷
÷ 
ð 
úrŸ  r7   N)	r8   r9   r:   r;   ró  r4   rÆ  r<   r=   r>   s   @r3   r¹  r¹  5  s   ø‡ € òIò'÷=ð =r6   r¹  )Yrâ   Ú
contextlibr   rˆ  rL   rQ  rw  r9  r
  r†  r½   Útornado.escaper   r   Útornador   r   Útornado.httpclientr   r	   Útornado.httpserverr   Útornado.httputilr   r   Útornado.ioloopr   Útornado.iostreamr   Útornado.locksr   Útornado.logr   Útornado.netutilr   r   Útornado.simple_httpclientr   r   r   Útornado.test.httpclient_testr   r   r   r   r   Útornado.testr   Útornado.testingr   r   r   r    r!   Útornado.test.utilr"   r#   r$   Útornado.webr%   r&   r'   r(   ÚHTTPClientCommonTestCaser*   rA   rW   rf   rn   rv   r   rŽ   r“   r™   rž   r¢   r©   rç  rý  r+  r9  rQ  ra  rq  r�  ÚHTTPClientMaxBodySizeTestCaser¡  r¨  r¹  r7   r6   r3   Ú<module>rÛ     sÝ  ðÛ Ý Û Û Û 	Û 	Û Û 
Û 
Û ç +ß  ß <Ý )ß ;Ý !Ý 3Ý Ý ß 2÷ñ ÷
õ õ )÷õ ÷ñ ÷
 NÓ Mô _×%MÑ%Mô ô�^ô ô˜>ô ô /�.ô /ô
�^ô ô�~ô ô'˜.ô 'ô˜ô ô1�nô 1ô

+˜^ô 
+ô&�nô &ð
 ô!˜nó !ó ð!ð ôE- ó E-ó ðE-ôP	DÐ0Ð2Kô 	Dô/2Ð 2Ð4Mô /2ôd5 Mô 5ô6)Ð/ô )ô>.IÐ0ô .Iôb9Ð/ô 9ô04Ð.ô 4ô87Ð)ô 7ô8RØ×1Ñ1ôRô;Ð)ô ;ô(=Ð#4ö =r6   