ó
    ōļh@  ć                   óx   S SK JrJrJrJrJrJrJr  S SKrSSK	J
r
JrJrJrJr  SSKJrJrJrJrJrJrJr  SSKJrJrJrJrJrJrJrJrJ r J!r!J"r"  SSK#J$r$J%r%J&r&  SS	K'J(r(J)r)J*r*  S*S jr+S*S jr,S*S jr-S*S jr.S*S jr/S*S jr0S*S jr1S*S jr2S*S jr3S*S jr4S*S jr5S*S jr6S*S jr7S*S jr8S*S jr9S*S jr:S*S jr;S*S jr<S*S jr=S*S jr>S*S jr?S*S  jr@S*S! jrAS*S" jrB\R                  R                  S#/ S$Q5      S#\ES
S4S% j5       rF\R                  R                  S#/ S&Q5      S#\ES
S4S' j5       rGS*S( jrHS*S) jrIg)+é    )ŚAnyŚcastŚDictŚListŚOptionalŚTupleŚTypeNé   )Ś_body_framingŚ_keep_aliveŚ
ConnectionŚ	NEED_DATAŚPAUSED)ŚConnectionClosedŚDataŚEndOfMessageŚEventŚInformationalResponseŚRequestŚResponse)ŚCLIENTŚCLOSEDŚDONEŚERRORŚIDLEŚMIGHT_SWITCH_PROTOCOLŚ
MUST_CLOSEŚ	SEND_BODYŚSEND_RESPONSEŚSERVERŚSWITCHED_PROTOCOL)ŚLocalProtocolErrorŚRemoteProtocolErrorŚSentinelé   )ŚConnectionPairŚget_all_eventsŚreceive_and_getŚreturnc            	      ó¾   [        [        SSS/S95      (       d   e[        [        SSSS/S95      (       a   e[        [        SSSS/S95      (       a   e[        [        SS/ SS95      (       a   e[        [        S	/ S
95      (       d   e[        [        S	S/S
95      (       a   e[        [        S	S/S
95      (       a   e[        [        S	/ SS95      (       a   eg )NŚGETŚ/)ŚHostzExample.com©ŚmethodŚtargetŚheaders©r   Śclose)r   za, b, cLOse, fooś1.0©r/   r0   r1   Śhttp_versionéČ   ©Śstatus_coder1   ©r9   r1   r6   )r   r   r   © ó    ŚK/var/www/html/env/lib/python3.13/site-packages/h11/tests/test_connection.pyŚtest__keep_aliver>       s*   ÜÜu SŠ3JŠ2KŃL÷ń š š ō ÜŲŲŲ,Š.EŠFń	
÷ń š š ō ÜŲŲŲ,Š.PŠQń	
÷ń š š ō Üu S°"Ą5ŃI÷ń š š ō xØCøŃ<×=Ń=Š=Š=Ü8°Š>UŠ=VŃW×XŃXŠXŠXÜÜSŠ+MŠ*NŃO÷ń š š ō 8°øRČeŃT×UŃUŠUŠUŠUr<   c            	      óB  ^ S[         [           S[        S[        [        [
        [
        4      4S jm SS[        S[         [           S[        S[        4U4S jjjn SS[         [           S[        S[        4U4S jjjn0 SS0SS	0SS	S
.4 H[  n[        [        [
        [        4   U5      nSU " S0 UD64SU " SSS0UD64SU " SSS0UD644 H  u  p4[        X45      S:X  a  M   e   M]     SS	0SS	S
.4 HN  n[        [        [
        [        4   U5      nS U" S0 UD64SU " S0 UD644 H  u  p4[        X45      S:X  a  M   e   MP     S U" SS94SU " SS944 H  u  p4[        X45      S:X  a  M   e   [        S U" 5       5      S:X  d   e[        SU " 5       5      S:X  d   eg )NŚclŚter)   c                 óx    / nU b  UR                  S[        U 5      45        U(       a  UR                  S5        U$ )NśContent-Length©zTransfer-EncodingŚchunked)ŚappendŚstr)r@   rA   r1   s      r=   r1   Ś#test__body_framing.<locals>.headers?   s7    ŲŲ>ŲNNŠ,¬c°"«gŠ6Ō7ŽŲNNŠ;Ō<Ųr<   r9   c                 ó$   > [        U T" X5      S9$ )Nr8   )r   )r9   r@   rA   r1   s      r=   ŚrespŚ test__body_framing.<locals>.respG   s   ų ō  K¹Ą»ŃIŠIr<   c                 ó6   > T" X5      nUS/-  n[        SSUS9$ )N©r-   zexample.comr+   r,   r.   )r   )r@   rA   Śhr1   s      r=   ŚreqŚtest__body_framing.<locals>.reqL   s)   ų ŁBOŲ	Š%Š&Ń&ÜeØCøŃ;Š;r<   éd   T)r@   rA   ó   HEADó   GETéĢ   i0  )ścontent-length)r   )rE   r;   )r@   )rU   )rQ   )zhttp/1.0r;   )r7   NF)NFr;   )r   ŚintŚboolr   r   rG   r   r   r   r   r   r   )rJ   rO   ŚkwargsŚmethŚrr1   s        @r=   Śtest__body_framingr[   >   sō  ų šHSMš ¤tš ““U¼3Äø8±_Ń0Eō š FKńJÜšJÜ$,¬S”MšJÜ>BšJä	÷Jš Jń
<š <¬$š <¼7÷ <š <š c{ TØ4 LøĄDŃ2IÓJÜd3¤8n fÓ-ądnVnŠ%ŲTŃ4 cŠ4ØVŃ4Š5ŲTŃ4 cŠ4ØVŃ4Š5ó
GDō
 ! Ó)Š-EÕEŠEŠEó
ń Kš $<Ø°4Ń!8Ó9Üd3¤8n fÓ-Ųs} V}Š-°¹¹øv¹Š/GÓHGDÜ  Ó)Ø_Õ<Š<Š<ó Iń :š 3 #;Š'Ø&±$ø#±,Š)?Ó@ÜTÓ%Š)CÕCŠCŠCń Aō suÓ%Š)AÓAŠAŠAÜ”£Ó(Š,<Ó<Š<Ń<r<   c            	      óŗ   [         R                  " [        5         [        S5        S S S 5        [	        5       n U R
                  [           R                  [        L d   eU R
                  [           R                  [        L d   eU R
                  [           R                  [        L d   eU R
                  [           R                  [        L d   eU R                  [        [        SSSS/S95      nUS:X  d   eU R                   H)  nUR                  [        [        [        [        0:X  a  M)   e   U R
                  [           R                   [        L d   eU R
                  [           R"                  [        L d   eU R
                  [           R                   [        L d   eU R
                  [           R"                  [        L d   eU R
                  [           R$                  b   eU R
                  [           R$                  S:X  d   eU R                  [        ['        S	/ S
95      nUS:X  d   eU R                  [        [)        SS/S
95      nUS:X  d   eU R                   H)  nUR                  [        [        [        [        0:X  a  M)   e   U R
                  [           R$                  S:X  d   eU R
                  [           R$                  S:X  d   eU R                  [        [+        SS95      nUS:X  d   eU R                  [        [+        SS9[+        SS9[-        5       /S9nUS:X  d   eU R                  [        [-        5       / S9nUS:X  d   eU R                   H)  nUR                  [        [.        [        [        0:X  a  M)   e   U R                  [        [+        SS95      nUS:X  d   eU R                  [        [+        SS9[+        SS9[-        5       /S9nUS:X  d   eU R                  [        [-        5       / S9nUS:X  d   eU R                   H)  nUR                  [        [.        [        [.        0:X  a  M)   e   g ! , (       d  f       GN+= f)Nr   r+   r,   rM   ©rC   Ś10r.   s9   GET / HTTP/1.1
Host: example.com
Content-Length: 10

ó   1.1rQ   r8   s   HTTP/1.1 100 

r7   )rC   Ś11s%   HTTP/1.1 200 
Content-Length: 11

ó   12345©Śdataó   67890©Śexpectr<   ó
   1234567890ó   1)ŚpytestŚraisesŚ
ValueErrorr   r&   Śconnr   Śour_roleŚ
their_roler    Śsendr   ŚconnsŚstatesr   r   Ś	our_stateŚtheir_stateŚtheir_http_versionr   r   r   r   r   ©Śprc   rl   s      r=   Ś)test_Connection_basics_and_content_lengthrw   j   s«   Ü	zÕ	"Ü8Ō÷ 
#ō 	ÓAŲ66&>×"Ń"¤fŅ,Š,Š,Ų66&>×$Ń$¬Ņ.Š.Š.Ų66&>×"Ń"¤fŅ,Š,Š,Ų66&>×$Ń$¬Ņ.Š.Š.ą66ÜÜŲŲŲ,Š.FŠGń	
óDš ŲTóš š š Ų{{v¤y“&¼-ŠHÕHŠHŠHń ą66&>×#Ń#¤yŅ0Š0Š0Ų66&>×%Ń%¬Ņ6Š6Š6Ų66&>×#Ń#¤}Ņ4Š4Š4Ų66&>×%Ń%¬Ņ2Š2Š2ą66&>×,Ń,Ń4Š4Š4Ų66&>×,Ń,°Ó6Š6Š6ą66&Ō/øCČŃLÓMDŲŠ+Ó+Š+Š+ą66&(ØsŠ=UŠ<VŃWÓXDŲŠAÓAŠAŠAąŲ{{v¤y“&¼)ŠDÕDŠDŠDń š 66&>×,Ń,°Ó6Š6Š6Ų66&>×,Ń,°Ó6Š6Š6ą66&$ HŃ-Ó.DŲ8ÓŠŠŲ66Ü(Ń#¬T°xŃ-@Ä,Ć.Š,Qš š Dš 8ÓŠŠŲ66&,.°6Š4DŲ3;Š;ąŲ{{v¤t¬V“YŠ?Õ?Š?Š?ń š 66&$ MŃ2Ó3DŲ=Ó Š Š Ų66&$ D/“4øT±?ÄLĆNŠ2S6ŠTDŲ4<Š<Ų66&,.°6Š4DŲ3;Š;ąŲ{{v¤t¬V“TŠ:Õ:Š:Š:ņ ÷} 
#Ö	"śs   QŃ
Qc            	      óņ   [        5       n U R                  [        [        SSSS/S95        U R                  [        [	        SSSS95      nUS	:X  d   eU R                  [        [	        S
SSS95      nUS:X  d   eU R                  [        [	        SS9/ S9nUS:X  d   eU R                  [        [        S/S95      nUS:X  d   eU R                  [        [        SS/S95        U R                  [        [	        SSSS95        U R                  [        [	        SSSS95        U R                  [        [        5       5        U R                   H)  nUR                  [        [        [        [        0:X  a  M)   e   g )Nr+   r,   rM   rD   r.   rg   T©rc   Śchunk_startŚ	chunk_ends   a
1234567890
s   abcdes
   5
abcde
r<   rb   re   )ŚhelloŚthere)r1   s   0
hello: there

r7   r8   s   54321ra   )r&   ro   r   r   r   r   r    r   rp   rq   r   ru   s      r=   Śtest_chunkedr~   ­   sS   ÜÓAąFFÜÜŲŲŲ,Š.NŠOń	
ōš 66&$ MøtČtŃTÓUDŲŠ)Ó)Š)Š)Ų66&$ Hø$Č$ŃOÓPDŲŠ$Ó$Š$Š$Ų66&$ C.°6Š4DŲ3;Š;Ų66&,Š0BŠ/CŃDÓEDŲŠ/Ó/Š/Š/ąFFÜ SŠ3SŠ2TŃUōš FF64X°4Ą4ŃHŌIŲFF64X°4Ą4ŃHŌIŲFF6<>Ō"ąŲ{{v¤t¬V“TŠ:Õ:Š:Š:ņ r<   c                  óL   [        [        S9n SnU R                  U5        U R                  5       [	        SSSS/S9:X  d   eU R                  5       [
        L d   eU R                  S5        U R                  5       [        S	S
S
S9:X  d   eU R                  S5        U R                  5       [        SS
SS9:X  d   eU R                  S5        U R                  5       [        SSSS9:X  d   eU R                  S5        U R                  5       [        SSS
S9:X  d   eU R                  S5        U R                  5       [        S	S
S
S9:X  d   eU R                  S5        U R                  5       [
        :X  d   eU R                  S5        U R                  5       [        5       :X  d   eg )N©rm   óB   POST / HTTP/1.1
Host: example.com
Transfer-Encoding: chunked

ŚPOSTr,   rM   rD   r.   s
   5
hello
s   helloTry   s   5
hels   helFó   ls   o
ó   os   5
helloó   
s   0

)r   r    Śreceive_dataŚ
next_eventr   r   r   r   )rl   Śrequests     r=   Śtest_chunk_boundariesr   Ģ   s   ÜvŃ&Dš	š š 	×ŃgŌŲ??Ó¤ŲŲŲ(Š*JŠKń!ó š š š
 ??Ó¤	Ņ)Š)Š)ą×ŃŠ'Ō(Ų??Ó¤Ø(ĄŠPTŃ UÓUŠUŠUą×ŃkŌ"Ų??Ó¤Ø&ødČeŃ TÓTŠTŠTą×ŃdŌŲ??Ó¤Ø$øEČUŃ SÓSŠSŠSą×ŃhŌŲ??Ó¤Ø$øEČTŃ RÓRŠRŠRą×ŃmŌ$Ų??Ó¤Ø(ĄŠPTŃ UÓUŠUŠUą×ŃgŌŲ??Ó¤	Ó)Š)Š)ą×ŃlŌ#Ų??Ó¤£Ó.Š.Ń.r<   c                  óņ   [        [        5      n U R                  [        SSS/S95        U R                  [	        5       5        U R
                  [        L d   e[        U S5      [        S/ SSS	9/:X  d   eU R
                  [        L d   e[        U S
5      [        S
S9/:X  d   e[        U S5      [        SS9/:X  d   e[        U S5      [	        5       [        5       /:X  d   eU R                  [        L d   eg )Nr+   r,   rM   r.   s   HTTP/1.0 200 OK

r7   r4   s   OK)r9   r1   r6   Śreasonra   rb   rd   r<   )r   r   ro   r   r   rr   r   r(   r   r   r   r   rs   r   ©Ścs    r=   Ś$test_client_talking_to_http10_serverr   ó   sņ    Ü6ÓAŲFF7%ØŠ6MŠ5NŃOŌPŲFF<>ŌŲ;;$ŅŠŠä1Š8Ó9ÜSØ"ø5ČŃOš>ó š š š ;;*Ņ$Š$Š$Ü1hÓ'¬D°hŃ,?Š+@Ó@Š@Š@Ü1hÓ'¬D°hŃ,?Š+@Ó@Š@Š@Ü1cÓ"¤|£~Ō7GÓ7IŠ&JÓJŠJŠJŲ==FŅ"Š"Ń"r<   c                  ó   [        [        5      n [        U S5      [        SS/ SS9[	        5       /:X  d   eU R
                  [        L d   eU R                  [        S/ S95      S:X  d   eU R                  [        S	S
95      S	:X  d   eU R                  [	        5       5      S:X  d   eU R                  [        L d   e[        [        5      n [        U S5      [        SSS/SS9[        SS
9/:X  d   e[        U S5      [        SS
9[	        5       /:X  d   eU R
                  [        L d   e[        U S5      [        5       /:X  d   eg )Nó   GET / HTTP/1.0

r+   r,   r4   r5   r7   r8   ó$   HTTP/1.1 200 
Connection: close

ra   rb   r<   s(   POST / HTTP/1.0
Content-Length: 10

1r   r]   rh   s	   234567890)r   r    r(   r   r   rs   r   ro   r   r   rr   r   r   s    r=   Ś$test_server_talking_to_http10_clientr     sa   Ü6ÓAō 1Š7Ó8Üu S°"Ą5ŃIÜš=ó š š š ==JŅ&Š&Š&š 	
x C°Ń4Ó5Ų8ó	9šš	9š 66$HŃ%Ó&Ø(Ó2Š2Š2Ų66,.Ó! SÓ(Š(Š(Ų;;*Ņ$Š$Š$ō 	6ÓAä1ŠOÓPÜŲŲŲ-Š.Ųń		
ō 	$šUó š š ō 1lÓ+“ø,Ń0GĢĖŠ/XÓXŠXŠXŲ==JŅ&Š&Š&Ü1cÓ"Ō'7Ó'9Š&:Ó:Š:Ń:r<   c            
      óĪ   S// SS/4 HŁ  n [        [        [        [        [        4      U 5      n [	        5       nUR                  [        [        SSS/S9[        5       /5        UR                  [        [        SU S9[        SS/S9S	9  [        [        5      n[        US
5        UR                  [        SU S95      S:X  d   eUR                  [        SS95      S:X  a  MŁ   e   g )NrD   ©rC   Ś100r+   r,   rM   r.   r7   r8   re   r   r   ra   rb   )r   r   r   rG   r&   ro   r   r   r   r    r   r   r(   r   )Śuser_headersrv   r   s      r=   Ś,test_automatic_transfer_encoding_in_responser   (  sü    š 
*Š*Ų
š 
*Š+DŠEóō D¤¤s¬C x”Ń1°<Ó@ÜÓŲ	ÜäuØSŠ;RŠ:SŃTÜšō	
š 	
ÜÜ ØlŃ;ÜŲŠ*JŠ)Kńš 	ń 	
ō vÓÜŠ4Ō5ąFF8Ø°\ŃBÓCŲ<ó=š	
š=š vvd Ń)Ó*ØhÕ6Š6Š6ņEr<   c            	      ó²   [        5       n U R                  [        [        SSSS/S9[	        5       /5        U R
                   H  nUR                  [           [        L a  M   e   U R                  [        [        S/ S9[	        5       /[        SS/S9[	        5       /S	9  U R
                   H)  nUR                  [        [        [        [        0:X  a  M)   e   g )
Nr+   r,   rM   r2   r.   rT   r8   )Ś
connectionr3   re   )
r&   ro   r   r   r   rp   rq   r   r    r   ©rv   rl   s     r=   Ś(test_automagic_connection_close_handlingr   R  sŃ    ÜÓAš FFÜäŲŲŲ0Š2IŠJńō
 Nš	
ō
š Ų{{6Ń"¤jŌ0Š0Š0ń š FFÜä	cØ2Ń	.“³Š?ō  Š/FŠ.GŃHÜNš
š ń 	š Ų{{v¤z“6¼:ŠFÕFŠFŠFņ r<   c                  óN   S[         4S jn U " 5       nUR                  [        [        S/ S95        UR                   H)  nUR
                  (       a   eUR                  (       d  M)   e   U " 5       nUR                  [        [        SS/S95        UR                   H)  nUR
                  (       a   eUR                  (       d  M)   e   U " 5       nUR                  [        [        SS95        UR                   H)  nUR
                  (       a   eUR                  (       d  M)   e   g )	Nr)   c            	      ó8   [        5       n U R                  [        [        SS/ SQS95        U R                   H  nUR
                  (       a  M   e   U R                  [           R                  (       a   eU R                  [           R                  (       d   eU $ )Nr+   r,   )rM   r   )ŚExpectz100-continuer.   )	r&   ro   r   r   rp   Ś"client_is_waiting_for_100_continuerl   Ś!they_are_waiting_for_100_continuer    r   s     r=   ŚsetupŚ test_100_continue.<locals>.setups  s    ÜÓŲ	ÜÜŲŲņńō	
š GGDŲ×:×:Ń:Š:Š:ń ą66&>×C×CŠCŠCŲvvf~×?×?Š?Š?Ųr<   rQ   r8   r7   rD   ra   rb   )
r&   ro   r    r   rp   r   r    r   r   r   )r”   rv   rl   s      r=   Śtest_100_continuer£   r  sż    š>ō ń* 	AŲFF6Ō(°SĄ"ŃEŌFŲŲ×:×:Š:Š:Ų×9×9Ń9Š9Š9ń ń
 	AŲFFÜ SŠ3SŠ2TŃUōš Ų×:×:Š:Š:Ų×9×9Ń9Š9Š9ń ń
 	AŲFF64XŃ&Ō'ŲŲ×:×:Š:Š:Ų×9×9Ń9Š9Š9ņ r<   c                  ó    [        [        5      n U R                  S5        U R                  5       [        L d   e[
        R                  " [        5          U R                  S5        U R                  5         M#  ! , (       d  f       O= f[        [        SS9n U R                  S5        U R                  S5        U R                  S5        [        U 5      [        SS	S
S/S9[        5       /:X  d   e[        [        SS9n U R                  S5        U R                  S5        [
        R                  " [        5         U R                  5         S S S 5        O! , (       d  f       O= f[        [        SS9n U R                  S5        U R                  SSS-  -   5        [        U 5      [        SS	S
S/S9[        SS-  S9[        5       /:X  d   e[        [        SS9n U R                  S5        [        U 5      [        SSS/S9[        5       /:X  d   eU R                  S5        U R                  [        S/ S95        U R                  [        5       5        U R                  5         [        U 5      [        SSS/S9[        5       /:X  d   eU R                  [        S/ S95        U R                  [        5       5        U R                  5         [
        R                  " [        5         U R                  5         S S S 5        g ! , (       d  f       g = f)Ns   GET / HTTP/1.0
Endless: s   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaai  )Śmax_incomplete_event_sizes   GET / HTTP/1.0
Big: s   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaas   

r+   r,   r4   )ŚbigĮ   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)r/   r0   r6   r1   i   s%   GET / HTTP/1.0
Content-Length: 10000ó   ai'  )rC   Ś10000rb   rQ   s   GET /1 HTTP/1.1
Host: a

GET /2 HTTP/1.1
Host: b

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXś/1)ŚhostŚar.   sč  XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXr7   r8   ś/2)r«   Śb)r   r    r   r   r   ri   rj   r#   r'   r   r   r   ro   r   Śstart_next_cycler   s    r=   Ś-test_max_incomplete_event_size_countermeasurer°     s   ä6ÓAŲNNŠ1Ō2Ų<<>YŅ&Š&Š&Ü	Ō*Õ	+ŲŲNN;Ō'ŲLLNń ÷ 
,Õ	+śō 	6°TŃ:AŲNNŠ-Ō.ŲNN;ŌŲNN;ŌÜ!ÓÜŲ °5ŠCVŠBWń	
ō 	š	!ó š š ō 	6°TŃ:AŲNNŠ-Ō.ŲNN;ŌÜ	Ō*Õ	+Ų	÷ 
,×	+Ö	+śō
 	6°TŃ:AŲNNŠ=Ō>ŲNN; Ø”Ń-Ō.Ü!ÓÜŲŲŲŲ0Š1ń		
ō 	$,ŃÜš	!ó 	š 	š 	ō 	6°SŃ9Aš NNš	<ōō !ÓÜu T°M°?ŃCÜš!ó š š š
 NN;ŌąFF8 ØRŃ0Ō1ŲFF<>ŌŲ×ŃŌÜ!ÓÜu T°M°?ŃCÜš!ó š š š FF8 ØRŃ0Ō1ŲFF<>ŌŲ×ŃŌÜ	Ō*Õ	+Ų	÷ 
,×	+Ö	+śs$   Į%A9Į9
BÄ;EÅ
E#Ė%K?Ė?
Lc            	      óö   [        5       n U R                  [        [        SSS/S9[	        5       /5        U R                  [
        [        SS/S9[	        5       /5        U R                   H9  nUR                  [        [        [
        [        0:X  d   eUR                  5         M;     U R                  [        [        SS	S/S9[	        5       /5        U R                  [
        [        S
S/S9[	        5       /5        g )Nr+   r,   ©r-   r¬   r.   r7   ©s   transfer-encodings   chunkedr8   ŚDELETEś/fooé  )r&   ro   r   r   r   r    r   rp   rq   r   rÆ   r   s     r=   Śtest_reuse_simpler·   ė  są    ÜÓAŲFFÜÜ	 c°M°?Ń	CÄ\Ć^ŠTōš FFÜä Š/QŠ.RŃSÜNš	
ōš Ų{{v¤t¬V“TŠ:Ó:Š:Š:Ų×ŃÖń š FFÜä8ØFø]øOŃLÜNš	
ōš FFÜä Š/QŠ.RŃSÜNš	
õr<   c                  ó"   [        [        5      n U R                  5       [        L d   eU R	                  S5        [        U 5      [        SSSS/S9[        SS9[        5       /:X  d   eU R                  [        L d   eU R                  [        L d   eU R                  5       [        L d   eU R                  [        S	/ S
95        U R                  [        5       5        U R                  [        L d   eU R                  [        L d   eU R!                  5         [        U 5      [        SSSS/S9[        SS9[        5       /:X  d   eU R                  5       [        L d   eU R                  [        S	/ S
95        U R                  [        5       5        U R!                  5         [        U 5      [        SSS/S9[        5       /:X  d   eU R                  5       [        L d   eU R                  [        S	/ S
95        U R                  [        5       5        U R                  5       [        L d   eU R	                  S5        U R                  5       [        L d   eU R"                  S:X  d   eU R	                  S5        U R"                  S:X  d   eU R                  5       [        L d   eU R	                  S5        U R                  5       [        L d   e[$        R&                  " [(        5         U R	                  S5        S S S 5        g ! , (       d  f       g = f)Ns   GET /1 HTTP/1.1
Host: a.com
Content-Length: 5

12345GET /2 HTTP/1.1
Host: a.com
Content-Length: 5

67890GET /3 HTTP/1.1
Host: a.com

r+   rŖ   )r-   śa.com)rC   Ś5r.   ra   rb   r7   r8   r­   rd   z/3ó   SADF)r»   Fr<   )r»   Ts   FDSA)r   r    r   r   r   r'   r   r   r   rs   r   rr   r   r   ro   r   rÆ   Śtrailing_datari   rj   ŚRuntimeErrorr   s    r=   Śtest_pipeliningr¾     s¬   ä6ÓAŲ<<>YŅ&Š&Š&ąNNš	2ōō !ÓÜŲŲŲ&Š(?Š@ń	
ō
 	(ŃÜš!ó š š š ==DŅ Š Š Ų;;-Ņ'Š'Š'ą<<>VŅ#Š#Š#ąFF8 ØRŃ0Ō1ŲFF<>ŌŲ==DŅ Š Š Ų;;$ŅŠŠą×ŃŌä!ÓÜŲŲŲ&Š(?Š@ń	
ō
 	(ŃÜš!ó š š š <<>VŅ#Š#Š#ŲFF8 ØRŃ0Ō1ŲFF<>ŌŲ×ŃŌä!ÓÜu TŠ4EŠ3FŃGÜš!ó š š š
 <<>YŅ&Š&Š&ŲFF8 ØRŃ0Ō1ŲFF<>Ōš <<>YŅ&Š&Š&ŲNN7ŌŲ<<>VŅ#Š#Š#Ų??Š.Ó.Š.Š.ąNN3ŌŲ??oÓ-Š-Š-Ų<<>VŅ#Š#Š#ŲNN3ŌŲ<<>VŅ#Š#Š#ä	|Õ	$Ų	wŌ÷ 
%×	$Ö	$śs   Ė%L Ģ 
Lc            
      ó>	  ^ [        SSSS/S9[        SS/S9[        S	S/S94[        S
S/ SQS9[        S	S/S9[        SS/S94[        SS/ SQS9[        SS/S9[        S	S/S94[        SS/ SQS9[        SS/S9[        SS/S944 GHķ  u  mpS[        4U4S jjnU" 5       nUR	                  [
        U 5        UR                   H)  nUR                  [        [        [
        [        0:X  a  M)   e   UR	                  [
        [        5       5        UR                   H  nUR                  5         M     U" 5       nUR	                  [
        U5        UR                   H  nUR                  [        [        [
        [        0:X  d   eUR                  S5        UR                  5       [         L d   eUR                  S5        UR                  5       [         L d   eUR"                  S:X  a  M   e   U" 5       nUR$                  [
           nUR                  S5        UR                  5       [         L d   eUR"                  S:X  d   eUR	                  U 5        UR                  5       [         L d   eUR	                  [        5       5        UR                  5         ['        U5      [        S
S/ SS9[        5       /:X  d   eU" 5       nUR$                  [
           nUR                  S5        UR                  5       [         L d   eUR"                  S:X  d   eUR	                  [
        U5        UR                  5       [         L d   eU" 5       nUR$                  [
           nUR                  S5        UR                  5       [         L d   eUR	                  U 5        UR                  5       [)        5       :X  d   eU" 5       n[*        R,                  " [.        5         UR$                  [           R	                  [        S
SS/S95        S S S 5        U" 5       nUR	                  [
        U5        [*        R,                  " [.        5         UR$                  [
           R	                  [1        SS95        S S S 5        GMš     g ! , (       d  f       N}= f! , (       d  f       GM  = f)NŚCONNECTzexample.com:443©r-   Śfoo©rC   Ś1r.   r¶   r³   r8   r7   r+   r,   )rĮ   rĆ   )ŚUpgradeza, bée   )rÅ   r¬   )rÅ   r®   r)   c                  ó¦  > [        5       n U R                  [        T5        U R                   H  nUR                  [           [
        L a  M   e   U R                  [        [        SS9[        5       /5        U R                   H  nUR                  [           [        L a  M   e   U R                  [           R                  5       [        L d   eU $ )Nrh   rb   )r&   ro   r   rp   rq   r   r   r   r   rl   r    r   r   )rv   rl   rO   s     r=   r”   Ś#test_protocol_switch.<locals>.setup~  s£   ų ÜÓ AŲFF63Ōš Ų{{¤6Ń*¬iŌ7Š7Š7ń  ąFF6D dO¬\«^Š<Ō=ŲŲ{{¤6Ń*Ō.CŌCŠCŠCń  ą66&>×,Ń,Ó.“&Ņ8Š8Š8ŲHr<   ó   123s   456)s   123456Fr   )r   Fr4   r5   r<   )r<   Tr²   rb   )r   r   r   r&   ro   r    rp   rq   r   r   r   r   rÆ   r!   r   r   r   r¼   rl   r'   r   ri   rj   r"   r   )ŚdenyŚacceptr”   rv   rl   ŚscrO   s         @r=   Śtest_protocol_switchrĶ   T  s  ų ō Ų Ų(Ų(Š*AŠBńō
  Š/QŠ.RŃSÜ Š/QŠ.RŃSš	
ō ŲŲŚWńō
  Š/QŠ.RŃSÜ!ØcŠ<LŠ;MŃNš	
ō Ų Ų(ŚWńō
  Š/QŠ.RŃSä Š/QŠ.RŃSš		
ō Ų Ų(ŚWńō
  Š/QŠ.RŃSä!ØcŠ<LŠ;MŃNš		
ō;' ŃdšR	~÷ 	ń GŲ	vtŌŲGGDŲ;;¤6¬4“¼Š"CÕCŠCŠCń ą	v|~Ō&ąGGDŲ×!Ń!Ö#ń ń GŲ	vvŌŲGGDŲ;;¤6Ō+<¼fŌFWŠ"XÓXŠXŠXŲ×ŃfŌ%Ų??Ó$¬Ņ.Š.Š.Ų×ŃfŌ%Ų??Ó$¬Ņ.Š.Š.Ų×%Ń%Š);Õ;Š;Š;ń ń GŲVVF^Ų
Š1Ō2Ų}}¤&Ņ(Š(Š(Ų×ŃŠ#EÓEŠEŠEŲ
Ų}}¤&Ņ(Š(Š(Ų
ŌŲ
×ŃŌÜbÓ!Ü5Ø°bĄuŃMÜNš&
ó 
š 	
š 
ń GŲVVF^Ų
ŌŲ}}¤&Ņ(Š(Š(Ų×Ń ;Ó.Š.Š.Ų	vvŌŲ}}¤&Ņ(Š(Š(įGŲVVF^Ų
ŌŲ}}¤&Ņ(Š(Š(Ų
Ų}}Ō"2Ó"4Ó4Š4Š4ń GÜ]]Ō-Õ.ŲFF6N×ŃÜuØSø=ø/ŃJō÷ /ń GŲ	vvŌÜ]]Ō-Õ.ŲFF6N×Ń¤Ø&Ń 1Ō2÷ /Ņ.ņq' ÷d /Õ.ś÷ /×.śs   Ļ-Q;Ń*RŃ;
R		Ņ
R	c                  ó  ^^ [         [        4[        [         44 GHĒ  u  mmS[        4UU4S jjn U " 5       nUR                  T   R	                  5       [        5       :X  d   eUR                  T   R	                  5       [        5       :X  d   eUR                  T   R                  S5        UR                  T   R	                  5       [        5       :X  d   eU " 5       nUR                  T[        5       5        UR                   H-  nUR                  [        L d   eUR                  [        L a  M-   e   U " 5       n[        R                  " [        5         UR                  T   R                  S5        S S S 5        U " 5       nUR                  T   R                  S5        [        R                  " [        5         UR                  T   R	                  5         S S S 5        GMŹ     g ! , (       d  f       Ny= f! , (       d  f       GMī  = f)Nr)   c                  ó²   > [        5       n U R                  T[        5       5        U R                   H!  nUR                  T[
        T[        0:X  a  M!   e   U $ ©N)r&   ro   r   rp   rq   r   r   )rv   rl   Śwho_shot_firstŚwho_shot_seconds     r=   r”   Ś test_close_simple.<locals>.setupÖ  sW   ų ÜÓ AŲFF>Ō#3Ó#5Ō6ŲŲ{{Ų"¤FŲ#¤Zš'õ š š ń  š
 Hr<   r<   rÉ   rS   )r   r    r&   rl   r   r   r   ro   rp   rr   r   rs   ri   rj   r½   r#   )r”   rv   rl   rŃ   rŅ   s      @@r=   Śtest_close_simplerŌ   Ń  s  ł ō 06“vŠ.>ÄĢŠ@PŌ-QŃ)š	~÷ 	š 	ń GŲvvoŃ&×1Ń1Ó3Ō7GÓ7IÓIŠIŠIŲvvoŃ&×1Ń1Ó3Ō7GÓ7IÓIŠIŠIŲ	Ń×,Ń,ØSŌ1ŲvvoŃ&×1Ń1Ó3Ō7GÓ7IÓIŠIŠIįGŲ	Ō 0Ó 2Ō3ŲGGDŲ>>¤VŅ+Š+Š+Ų×#Ń#¤vŌ-Š-Š-ń ń GÜ]]<Õ(ŲFF?Ń#×0Ń0°Ō8÷ )ń GŲ	~Ń×+Ń+ØFŌ3Ü]]Ō.Õ/ŲFF>Ń"×-Ń-Ō/÷ 0Ņ/ņE .R÷: )Õ(ś÷
 0×/śs   ÅG(Ę<G9Ē(
G6	Ē9
H		c            	      ón   [        SSS/S9[        5       /n [        SS/S9[        5       /n[        5       nUR	                  [
        [        5       5        UR                   H)  nUR                  [
        [        [        [        0:X  a  M)   e   [        5       nUR	                  [
        U 5        UR	                  [
        [        5       5        UR                   H)  nUR                  [
        [        [        [        0:X  a  M)   e   [        5       nUR	                  [
        U 5        [        R                  " [        5         UR                   [           R	                  [        5       5        S S S 5        UR                   [
           R#                  S5        [        R                  " [$        5         UR                   [
           R'                  5         S S S 5        [        5       nUR	                  [
        U 5        UR	                  [        U5        UR	                  [        [        5       5        UR                   H)  nUR                  [
        [        [        [        0:X  a  M)   e   [        5       nUR	                  [
        U 5        UR	                  [        U5        UR	                  [
        [        5       5        UR	                  [        [        5       5        UR	                  [
        [        5       5        UR	                  [        [        5       5        [        5       nUR	                  [
        [        SS	SS
/S95        [        R                  " [        5         UR                   [
           R	                  [        5       5        S S S 5        UR                   [           R#                  S5        [        R                  " [$        5         UR                   [           R'                  5         S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN;= f! , (       d  f       N= f! , (       d  f       g = f)Nr+   rµ   r²   r.   r7   r³   r8   r<   r,   r]   )r   r   r   r&   ro   r   r   rp   rq   r   r    r   r   ri   rj   r"   rl   r   r#   r   )rO   rJ   rv   rl   s       r=   Śtest_close_different_statesrÖ   ś  sß   äu V°m°_ŃEÜšCō
 	SŠ+MŠ*NŃOÜšDō 	ÓAŲFF6Ō#Ó%Ō&ŲŲ{{v¤v¬v“zŠBÕBŠBŠBń ō 	ÓAŲFF63ŌŲFF6Ō#Ó%Ō&ŲŲ{{v¤v¬v“}ŠEÕEŠEŠEń ō 	ÓAŲFF63ŌÜ	Ō)Õ	*Ų	v×ŃŌ,Ó.Ō/÷ 
+ąFF6N×Ń Ō$Ü	Ō*Õ	+Ų	v×!Ń!Ō#÷ 
,ō 	ÓAŲFF63ŌŲFF64ŌŲFF6Ō#Ó%Ō&ŲŲ{{v¤z“6¼6ŠBÕBŠBŠBń ō 	ÓAŲFF63ŌŲFF64ŌŲFF6Ō#Ó%Ō&ŲFF6Ō#Ó%Ō&ŲFF6Ō#Ó%Ō&ŲFF6Ō#Ó%Ō&ō 	ÓAŲFFÜÜŲ Ø}Š>VŠ.Wń	
ōō 
Ō)Õ	*Ų	v×ŃŌ,Ó.Ō/÷ 
+ąFF6N×Ń Ō$Ü	Ō*Õ	+Ų	v×!Ń!Ō#÷ 
,Š	+÷E 
+Ö	*ś÷ 
,Ö	+ś÷8 
+Õ	*ś÷ 
,Õ	+śs0   Ä>+O1Ę-"PĶ+PĻ"P&Ļ1
P Š
PŠ
P#Š&
P4c                  ó   [        [        5      n U R                  S5        U R                  S5        [        U 5      [	        SSSS/S9[        SS	9[        5       /:X  d   eU R                  [           [        L d   eU R                  [        S
/ S95        U R                  [        5       5        U R                  [           [        L d   eU R                  5         [        U 5      [	        SSSS/S9[        SS	9[        5       [        5       /:X  d   eU R                  [        [        [        [        0:X  d   eU R                  [        S
/ S95        U R                  [        5       5        U R                  [        [        [        [         0:X  d   eU R                  [        5       5        U R                  [        [        [        [        0:X  d   eg )Nsp   GET /1 HTTP/1.1
Host: a.com
Content-Length: 5

12345GET /2 HTTP/1.1
Host: a.com
Content-Length: 5

67890r<   r+   rŖ   )r«   r¹   )rU   rŗ   r.   ra   rb   r7   r8   r­   rd   )r   r    r   r'   r   r   r   rq   r   r   ro   r   rÆ   r   r   r   r   r   s    r=   Śtest_pipelined_closerŲ   <  s   Ü6ÓAąNNš	ōš NN3ŌÜ!ÓÜŲŲŲ&Š(?Š@ń	
ō
 	(ŃÜš!ó š š š 88FŃtŅ#Š#Š#ŲFF8 ØRŃ0Ō1ŲFF<>ŌŲ88FŃtŅ#Š#Š#Ų×ŃŌÜ!ÓÜŲŲŲ&Š(?Š@ń	
ō
 	(ŃÜÜÓš	!ó 	š 	š 	š 88¤¬“Š>Ó>Š>Š>ŲFF8 ØRŃ0Ō1ŲFF<>ŌŲ88¤¬“
Š;Ó;Š;Š;ŲFFŌÓŌŲ88¤¬“Š7Ó7Š7Ń7r<   c            
      óŅ  ^  " S S5      n U " 5       mS[         [        [        4   S[        S[         [        [        [        [
              4   4U4S jjnU" SS5      u  p#UT/:X  d   eUR                  [        5       5        U" S	S5      u  pCTU;   d   eS
X3R                  T5      '   SR                  U5      S:X  d   eU" S S5      u  p#UT/:X  d   eUR                  [        L d   eg )Nc                   ó"    \ rS rSrS\4S jrSrg)Ś*test_sendfile.<locals>.SendfilePlaceholderig  r)   c                 ó    g)Né
   r;   )Śselfs    r=   Ś__len__Ś2test_sendfile.<locals>.SendfilePlaceholder.__len__h  s    Ųr<   r;   N)Ś__name__Ś
__module__Ś__qualname__Ś__firstlineno__rV   rß   Ś__static_attributes__r;   r<   r=   ŚSendfilePlaceholderrŪ   g  s    š	S÷ 	r<   rę   Śheaderr6   r)   c                 ó  > [        [        5      n[        USR                  U5      R	                  S5      5        / nU (       a  UR                  U 5        UR                  [        SUS95        X"R                  [        TS95      4$ )NzGET / HTTP/{}
Host: a

Śasciir7   r8   rb   )
r   r    r(   ŚformatŚencoderF   ro   r   Śsend_with_data_passthroughr   )rē   r6   r   r1   Śplaceholders       r=   r”   Śtest_sendfile.<locals>.setupm  su   ų ō vÓÜŲŠ1×8Ń8øÓF×MŃMČgÓVō	
š ŽŲNN6Ō"Ų	x C°Ń9Ō:Ų×.Ń.¬tøŃ/EÓFŠFŠFr<   r]   z1.1rD   s
   xxxxxxxxxxr<   s   a
xxxxxxxxxx
r4   )r   rG   r   r   r   Śbytesro   r   ŚindexŚjoinrr   r   )rę   r”   r   rc   Ś_rķ   s        @r=   Śtest_sendfileró   f  sł   ų ÷ń ń &Ó'KšGÜc3hšGÜ/2šGä	z8¤D¬”KŃ0Š0Ń	1÷Gń Š,ØeÓ4GAŲK=Ó Š Š š FF<>ŌįŠ4°eÓ<GAŲ$ÓŠŠŲ$-DKÓ	 Ń!Ų88D>Š3Ó3Š3Š3įD%Ó GAŲK=Ó Š Š Ų;;)Ņ#Š#Ń#r<   c                  ó   [         [        4 Hö  n [        U S9nUR                  S5        [        R
                  " [        5         UR                  5         S S S 5        UR                  [        L d   eUR                  [        Ld   e[        UR                  R                  5        [        R
                  " [        5         UR                  5         S S S 5        U [        L d  M×  UR                  [        S/ S95      S:X  a  Mö   e   S[         ["           S[        4S jn[         [        4 GH  n U [         L a  [%        S	S
S/S9n[%        S	S
S/SS9nOU [        L a  [        S/ S9n[        S/ SS9nU" U 5      nUR                  W5        UR                  [        Ld   eU" U 5      n[        R
                  " [&        5         UR                  W5        S S S 5        UR                  [        L d   eUR                  [        Ld   e[        R
                  " [&        5         UR                  U5        S S S 5        U" U 5      nUR)                  5         UR                  [        L d   eUR                  [        Ld   eUR)                  5         UR                  [        L d   eUR                  [        La  GM   e   g ! , (       d  f       GNl= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       NĘ= f)Nr   s   gibberish

i  r8   s$   HTTP/1.1 400 
Connection: close

Śroler)   c                 ól    [        U S9nU [        L a!  [        US5        UR                  [        L d   eU$ )Nr   r   )r   r    r(   rr   r   ©rõ   r   s     r=   rl   Śtest_errors.<locals>.conn”  s5    Ü Ń%Ų6>äAŠ8Ō9Ų;;¤-Ņ/Š/Š/Ųr<   r+   r,   rM   r.   r4   r5   r7   r:   )r   r    r   r   ri   rj   r#   r   rs   r   rr   ŚprintŚ_cstaterq   ro   r   r	   r$   r   r"   Śsend_failed)rõ   r   rl   ŚgoodŚbads        r=   Śtest_errorsrž     s]   äÓ Ü Ń%Ų	Š+Ō,Ü]]Ō.Õ/ŲLLN÷ 0š }}¤Ņ%Š%Š%Ų{{¤%Ņ'Š'Š'Üaii×ŃŌÜ]]Ō.Õ/ŲLLN÷ 0š 6>ąxØCøŃ<Ó=Ų@õAššAń !š*4>š ¤jō ō Ō Ų6>ō  %°Š>UŠ=VŃWDÜŲŲŲ0Š1Ų"ń	Cš V^ÜØ°RŃ8DÜ s°BĄUŃKCįJŲ	tŲ{{¤%Ņ'Š'Š'įJÜ]]Ō-Õ.ŲFF3K÷ /ą{{eŅ#Š#Š#Ų}}¤EŅ)Š)Š)ä]]Ō-Õ.ŲFF4L÷ /ń JŲ	Ų{{eŅ#Š#Š#Ų}}¤EŅ)Š)Š)ą	Ų{{eŅ#Š#Š#Ų}}¤EÕ)Š)Š)ņI !÷5 0Ö/ś÷ 0Ö/ś÷P /Ö.ś÷
 /Õ.śs0   ĮJ:Ć KĒ KČK0Ź:
K		Ė
K	Ė
K-	Ė0
K>	c                  ór    [         [        4 H'  n [        U 5      nUR                  5       [        L a  M'   e   g rŠ   )r   r    r   r   r   r÷   s     r=   Śtest_idle_receive_nothingr   Š  s/    äÓ ÜtÓŲ||~¤Ō*Š*Š*ņ !r<   c                  ó    [        [        5      n U R                  S5        U R                  5       [        L d   eU R                  S5        [
        R                  " [        5         U R                  5         S S S 5        g ! , (       d  f       g = f)Ns   GET /r<   )r   r    r   r   r   ri   rj   r#   r   s    r=   Śtest_connection_dropr  ×  sZ    Ü6ÓAŲNN8ŌŲ<<>YŅ&Š&Š&ŲNN3ŌÜ	Ō*Õ	+Ų	÷ 
,×	+Ö	+śs   Į%A?Į?
Bc                  óV    [        5       n U R                  [        [        SS/S95        g )Ni  )s
   connections   closer8   )r&   ro   r    r   )rv   s    r=   Śtest_408_request_timeoutr  ą  s%    ō 	ÓAŲFF68ØŠ6OŠ5PŃQÕRr<   c                  óĢ    [        [        5      n U R                  S5        [        R                  " [
        5         U R                  5         S S S 5        g ! , (       d  f       g = f)Nr   ©r   r    r   ri   rj   r#   r   r   s    r=   Śtest_empty_requestr  č  s:    Ü6ÓAŲNN7ŌÜ	Ō*Õ	+Ų	÷ 
,×	+Ö	+śó   »AĮ
A#c                  ó   [        [        5      n U R                  [        SSS/S95        U R	                  S5        [
        R                  " [        5         U R                  5         S S S 5        g ! , (       d  f       g = f)Nr+   r,   r²   r.   r   )	r   r   ro   r   r   ri   rj   r#   r   r   s    r=   Śtest_empty_responser
  š  sQ    Ü6ÓAŲFF7%Ø°m°_ŃEŌFŲNN7ŌÜ	Ō*Õ	+Ų	÷ 
,×	+Ö	+śs   ĮA0Į0
A>rc   )ó    ó    s    „c                 óĢ    [        [        5      nUR                  U 5        [        R                  " [
        5         UR                  5         S S S 5        g ! , (       d  f       g = frŠ   r  ©rc   r   s     r=   Ś'test_early_detection_of_invalid_requestr  ų  ó<    ō 	6ÓAąNN4ŌÜ	Ō*Õ	+Ų	÷ 
,×	+Ö	+śr  )r  r  s    1c                 óĢ    [        [        5      nUR                  U 5        [        R                  " [
        5         UR                  5         S S S 5        g ! , (       d  f       g = frŠ   )r   r   r   ri   rj   r#   r   r  s     r=   Ś(test_early_detection_of_invalid_responser    r  r  c                  ó8   S[         S[         S[        4S jn S H}  nU " US5      nUR                  [        S/ S95      S	:X  d   eU " US
5      nUR                  [        S/ S95      S:X  d   eU " US5      nUR                  [        SSS/S95      S	:X  a  M}   e   g )Nr/   r6   r)   c                 óę    [        [        5      nUR                  U S-   U-   S-   S-   5        [        UR	                  5       5      [
        L d   e[        UR	                  5       5      [        L d   eU$ )Ns    / HTTP/r   s   Host: example.com

)r   r    r   Śtyper   r   r   )r/   r6   r   s      r=   r”   Ś(test_HEAD_framing_headers.<locals>.setup  si    ÜvÓŲ	Ų[Ń  <Ń/°'Ń9Š<XŃXō	
ō ALLNÓ#¤wŅ.Š.Š.ÜALLNÓ#¤|Ņ3Š3Š3Ųr<   )rS   rR   r_   r7   r8   s-   HTTP/1.1 200 
Transfer-Encoding: chunked

s   1.0r   r   rD   )rļ   r   ro   r   )r”   r/   r   s      r=   Śtest_HEAD_framing_headersr    sŌ    šeš ¬5š “Zō ó $į&&Ó!ąFF8Ø°RŃ8Ó9š >2ó 2š	
š2ń
 &&Ó!ąFF8Ø°RŃ8Ó9š >)ó )š	
š)ń
 &&Ó!ąFFÜŲ #ą1Ų8šńóš2õ
2š	
š
2ņ% $r<   c                  ó&   [        [        5      n U R                  S5        [        U R	                  5       5      [
        L d   eU R	                  5       [        L d   eU R                  S5        U R	                  5       [        SS9:X  d   eU R                  S5        [        R                  " [        5       nU R	                  5         S S S 5        S[        WR                  5      ;   d   eS[        UR                  5      ;   d   e[        [        5      n U R                  S5        [        U R	                  5       5      [
        L d   eU R	                  5       [        L d   eU R                  S5        U R	                  5       R                  S	:X  d   eU R                  S5        [        R                  " [        5       nU R	                  5         S S S 5        S
[        UR                  5      ;   d   eg ! , (       d  f       GN1= f! , (       d  f       N<= f)Ns;   POST / HTTP/1.1
Host: example.com
Content-Length: 100

ra   rb   r<   zreceived 5 byteszexpected 100r   s	   8
012345s   012345zincomplete chunked read)r   r    r   r  r   r   r   r   ri   rj   r#   rG   Śvaluerc   )r   Śexcinfos     r=   Ś;test_special_exceptions_for_lost_connection_in_message_bodyr  F  s   Ü6ÓAŲNNŲVōō Ó¤7Ņ*Š*Š*Ų<<>YŅ&Š&Š&ŲNN8ŌŲ<<>T xŃ0Ó0Š0Š0ŲNN3ŌÜ	Ō*Ō	+ØwŲ	÷ 
,ą¤ W§]”]Ó!3Ó3Š3Š3ŲS §”Ó/Ó/Š/Š/ä6ÓAŲNNš	.ōō
 Ó¤7Ņ*Š*Š*Ų<<>YŅ&Š&Š&ŲNN>Ō"Ų<<>×Ń )Ó+Š+Š+ŲNN3ŌÜ	Ō*Ō	+ØwŲ	÷ 
,ą$¬ØGÆM©MÓ(:Ó:Š:Ń:÷% 
,Ö	+ś÷  
,Õ	+śs   Ā5G0Ę;HĒ0
G?Č
H)r)   N)JŚtypingr   r   r   r   r   r   r	   ri   Ś_connectionr   r   r   r   r   Ś_eventsr   r   r   r   r   r   r   Ś_stater   r   r   r   r   r   r   r   r   r    r!   Ś_utilr"   r#   r$   Śhelpersr&   r'   r(   r>   r[   rw   r~   r   r   r   r   r   r£   r°   r·   r¾   rĶ   rŌ   rÖ   rŲ   ró   rž   r   r  r  r  r
  ŚmarkŚparametrizerļ   r  r  r  r  r;   r<   r=   Ś<module>r$     sV  šß ?× ?Ń ?ć ē SÕ S÷÷ ń ÷÷ ÷ ń ÷ FŃ Eß DŃ DōVō<)=ōX@;ōF;ō>$/ōN#ō ";ōJ'7ōTGō@*:ōZIōXōBE ōPz3ōz&0ōR=$ōD'8ōT!$ōHC*ōL+ōōSōōš ×ŃŲ
ņóš°%š øDó óšš ×ŃŲ
ņóš°5š øTó óšō'
õT;r<   