ó
    °"³jÅ]  ã                  óZ  • S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKJr  S SK	r
S SKr
S SKr
S SKr
S SKr
SSKJr  SSKJrJrJr  SSKJrJrJr  SSKJrJrJr  SS	KJr  SS
KJ r   SSK!J"r"  \RF                  " S5      r$SS jr% " S S\RL                  5      r' " S S\"5      r( " S S5      r)g)é    )ÚannotationsN)ÚAsyncGeneratoré   )ÚAsyncNetworkStream)ÚConnectionNotAvailableÚLocalProtocolErrorÚRemoteProtocolError)ÚOriginÚRequestÚResponse)Ú	AsyncLockÚAsyncSemaphoreÚAsyncShieldCancellation)ÚTrace)Úsafe_async_iterateé   )ÚAsyncConnectionInterfacezhttpcore2.http2c                ó:   • [        S U R                   5       5      $ )Nc              3  ó€   #   • U  H4  u  pUR                  5       S :H  =(       d    UR                  5       S:H  v •  M6     g7f)s   content-lengthó   transfer-encodingN)Úlower)Ú.0ÚkÚ_vs      ÚS/home/mande/repo/quber/.venv/lib/python3.13/site-packages/httpcore2/_async/http2.pyÚ	<genexpr>Ú#has_body_headers.<locals>.<genexpr>   s6   é € ÐpÒ`oÑW\ÐWXˆq�w‰w‹yÐ-Ñ-×R°·±³Ð>RÑ1RÔRÒ`oùs   ‚<>)ÚanyÚheaders)Úrequests    r   Úhas_body_headersr!      s   € ÜÑpÐ`g×`oÒ`oÓpÓpÐpó    c                  ó    • \ rS rSrSrSrSrSrg)ÚHTTPConnectionStateé   r   r   é   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚACTIVEÚIDLEÚCLOSEDÚ__static_attributes__r'   r"   r   r$   r$      s   † Ø€FØ€DØƒFr"   r$   c                  óš  • \ rS rSrSr\R                  R                  SS9r S#     S$S j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rS*S jr      S+S jrS#S,S jjrS-S jrS.S jrS/S jrS0S jrS&S jrS1S jrS2S jrS3S jrS3S jrS3S jrS3S jrS3S jrS3S jr S4S jr!S4S jr"S5S  jr#   S6       S7S! jjr$S"r%g)8ÚAsyncHTTP2Connectioné%   é   F)Úvalidate_inbound_headersNc                ó   • Xl         X l        X0l        [        R                  R                  U R                  S9U l        [        R                  U l
        S U l        SU l        [        5       U l        [        5       U l        [        5       U l        [        5       U l        SU l        SU l        SU l        0 U l        S U l        S U l        S U l        g )N)Úconfigr   F)Ú_originÚ_network_streamÚ_keepalive_expiryÚh2Ú
connectionÚH2ConnectionÚCONFIGÚ	_h2_stater$   r-   Ú_stateÚ
_expire_atÚ_request_countr   Ú
_init_lockÚ_state_lockÚ
_read_lockÚ_write_lockÚ_sent_connection_initÚ_used_all_stream_idsÚ_connection_errorÚ_eventsÚ_connection_terminatedÚ_read_exceptionÚ_write_exception)ÚselfÚoriginÚstreamÚkeepalive_expirys       r   Ú__init__ÚAsyncHTTP2Connection.__init__)   s´   € ð ŒØ%ÔØ/?ÔÜŸ™×3Ñ3¸4¿;¹;Ð3ÐGˆŒÜ)×.Ñ.ˆŒØ(,ˆŒØˆÔÜ#›+ˆŒÜ$›;ˆÔÜ#›+ˆŒÜ$›;ˆÔØ%*ˆÔ"Ø$)ˆÔ!Ø!&ˆÔð ð 	Œð NRˆÔ#à15ˆÔØ26ˆÕr"   c           
   ƒ  ój  #   • U R                  UR                  R                  5      (       d/  [        SUR                  R                   SU R                   35      eU R
                   IS h  v•N   U R                  [        R                  [        R                  4;   a2  U =R                  S-  sl
        S U l        [        R                  U l        O
[        5       eS S S 5      IS h  v•N   U R                   IS h  v•N   U R                  (       dÇ   SU0n[        S[         X5       IS h  v•N   U R"                  " S0 UD6I S h  v•N   S S S 5      IS h  v•N   SU l        SU l        U R,                  R.                  R0                  n[3        U5      U l        [7        X@R*                  -
  5       H%  nU R4                  R9                  5       I S h  v•N   M'     S S S 5      IS h  v•N   U R4                  R9                  5       I S h  v•N    U R,                  R;                  5       n/ U R<                  U'    XS.n[        S[         X5       IS h  v•N   U RI                  XS9I S h  v•N   S S S 5      IS h  v•N   [        S	[         X5       IS h  v•N   U RK                  XS9I S h  v•N   S S S 5      IS h  v•N   [        S
[         X5       IS h  v•N nU RM                  XS9I S h  v•N u  pšXš4Ul'        S S S 5      IS h  v•N   [Q        W	W
[S        XUS9SU RT                  US.S9$  GN¼ GNE! , IS h  v•N  (       d  f       GN[= f GNN GN! GN
 GNý! , IS h  v•N  (       d  f       GN= f! [$         aE  n['        5          U R)                  5       I S h  v•N    S S S 5        Ue! , (       d  f       Ue= fS nAff = f GNó GNâ! , IS h  v•N  (       d  f       GNø= f GNÞ! [>        R@                  RB                   aJ    SU l"        U =R                  S-  sl
        U R4                  RG                  5       I S h  v•N    [        5       ef = f GN GNï GNâ! , IS h  v•N  (       d  f       GNø= f GNæ GNÒ GNÅ! , IS h  v•N  (       d  f       GNÛ= f GNÉ GNµ GNž! , IS h  v•N  (       d  f       GN´= f! [$         aé  n['        5          SU0n[        S[         X5       IS h  v•N    U RW                  US9I S h  v•N    S S S 5      IS h  v•N    O! , IS h  v•N  (       d  f       O= fS S S 5        O! , (       d  f       O= f[Y        U[>        R@                  RZ                  5      (       a1  U R\                  (       a  [_        U R\                  5      e[a        U5      eUeS nAff = f7f)NzAttempted to send request to z on connection to r   r    Úsend_connection_initT©r    Ú	stream_idÚsend_request_headersÚsend_request_bodyÚreceive_response_headers©rV   s   HTTP/2)Úhttp_versionÚnetwork_streamrV   )Ústatusr   ÚcontentÚ
extensionsrV   Úresponse_closedr'   )1Úcan_handle_requestÚurlrN   ÚRuntimeErrorr7   rC   r?   r$   r,   r-   rA   r@   r   rB   rF   r   ÚloggerÚ_send_connection_initÚBaseExceptionr   ÚacloseÚ_max_streamsr>   Úlocal_settingsÚmax_concurrent_streamsr   Ú_max_streams_semaphoreÚrangeÚacquireÚget_next_available_stream_idrI   r:   Ú
exceptionsÚNoAvailableStreamIDErrorrG   ÚreleaseÚ_send_request_headersÚ_send_request_bodyÚ_receive_responseÚreturn_valuer   ÚHTTP2ConnectionByteStreamr8   Ú_response_closedÚ
isinstanceÚProtocolErrorrJ   r	   r   )rM   r    Ú
sci_kwargsÚexcÚlocal_settings_max_streamsÚ_rV   ÚkwargsÚtracer]   r   s              r   Úhandle_async_requestÚ)AsyncHTTP2Connection.handle_async_requestK   s\  é € Ø×&Ñ& w§{¡{×'9Ñ'9×:Ñ:ô
 Ð!>¸w¿{¹{×?QÑ?QÐ>RÐRdÐei×eqÑeqÐdrÐsÓtÐtà×#×#Ó#Ø�{‰{Ô2×9Ñ9Ô;N×;SÑ;SÐTÓTØ×#Ò# qÑ(Õ#Ø"&�”Ü1×8Ñ8�•ä,Ó.Ð.÷ $×#ð —?—?“?Ø×-×-ðØ"+¨WÐ!5�JÜ$Ð%;¼VÀW×YÕYØ"×8Ò8ÑF¸:ÑF×FÐF÷  Z×Yð .2�Ô*ð %&�Ô!à-1¯^©^×-JÑ-J×-aÑ-aÐ*Ü.<Ð=WÓ.X�Ô+äÐ9×<MÑ<MÑMÖN�AØ×5Ñ5×=Ñ=Ó?×?Ò?ñ O÷) #—?ð. ×)Ñ)×1Ñ1Ó3×3Ð3ð	+ØŸ™×CÑCÓEˆIØ&(ˆD�L‰L˜Ñ#ð*	Ø!(ÑAˆFÜÐ3´V¸W×MÕMØ×0Ñ0¸Ð0ÐV×VÐV÷ N×MäÐ0´&¸'×JÕJØ×-Ñ-°gÐ-ÐS×SÐS÷ K×JäÐ7¼À×QÔQÐUZØ(,×(>Ñ(>ÀwÐ(>Ð(d×"d‘�Ø&,Ð%6�Ô"÷ R×Qô ØØÜ1°$È9ÑUà$-Ø&*×&:Ñ&:Ø!*ññ		ð 	÷i $×#×#Õ#úò #ò  ZÚF÷  Z×Y×YÒYûä$ó Ü0Õ2Ø"Ÿk™k›m×+Ñ+÷ 3à�I÷ 3Ô2à�Iþðúò @÷+ #—?—?’?úò. 	4øô
 �}‰}×5Ñ5ó 	+Ø(,ˆDÔ%Ø×Ò 1Ñ$ÕØ×-Ñ-×5Ñ5Ó7×7Ñ7Ü(Ó*Ð*ð		+úò NÚV÷ N×M×MÒMúâJÚS÷ K×J×JÒJúâQÚ"d÷ R×Q×QÒQûô ó 	Ü(Õ*Ø% yÐ1�Ü Ð!2´F¸G×LÖLØ×/Ñ/¸)Ð/ÐD×DÑD÷ M×L×L×L×LÐLú÷ +×*Ö*úô
 ˜#œrŸ}™}×:Ñ:×;Ñ;ð ×.×.Ü-¨d×.IÑ.IÓJÐJô )¨Ó-Ð-àˆIûð-	üsø  ‚A*V3Á,L(Á-V3Á0A+L.ÃV3Ã&L+Ã'V3Ã;M	Ã<V3Ã?OÄM0Ä+MÄ,M0Ä/MÅMÅMÅ
M0ÅMÅM0ÅA5OÇOÇOÇV3Ç#OÇ$!V3ÈO#ÈV3È)O& È5R= ÉQÉR= ÉQÉ%QÉ&QÉ*R= É5QÉ6R= ÊQ5ÊR= ÊQ>Ê&Q8Ê'Q>Ê+R= Ê6Q;Ê7R= ËRËR= ËR"Ë'RË(R"Ë6R= ÌRÌ%R= Ì'V3Ì+V3Ì.MÌ4L7Ì5MÍ	V3ÍM0ÍMÍM0ÍM-	ÍMÍM-	Í(M0Í+OÍ-M0Í0
N?Í:
N:ÎN(ÎN
ÎN(Î
N:Î(
N7Î2N:Î:N?Î?OÏV3ÏO ÏOÏO Ï	V3Ï&AQÐ=Q Ð>QÑV3ÑR= ÑQÑR= ÑQ2Ñ Q#Ñ!Q2Ñ-	R= Ñ8Q>Ñ;R= Ñ>RÒRÒRÒ	R= ÒR"ÒR= Ò"R:Ò(R+Ò)R:Ò5R= Ò=
V0Ó
V+ÓT>Ó+S.
Ó,T>Ó0TÔT
ÔTÔ	T>ÔTÔT>ÔT2Ô!T$Ô"T2Ô.T>Ô5	V+Ô>
U	ÕA#V+Ö+V0Ö0V3c           	   ƒ  óP  #   • [         R                  R                  S[         R                  R                  R                  S[         R                  R                  R
                  S[         R                  R                  R                  S0S9U R                  l        U R                  R                  [         R                  R                  R                  	 U R                  R                  5         U R                  R                  S5        U R                  U5      I Sh  v•N   g N7f)zx
The HTTP/2 connection requires some initial setup before we can start
using individual request/response streams on it.
Tr   éd   r3   )ÚclientÚinitial_valuesé   N)r:   ÚsettingsÚSettingsÚSettingCodesÚENABLE_PUSHÚMAX_CONCURRENT_STREAMSÚMAX_HEADER_LIST_SIZEr>   ri   ÚENABLE_CONNECT_PROTOCOLÚinitiate_connectionÚincrement_flow_control_windowÚ_write_outgoing_data)rM   r    s     r   re   Ú*AsyncHTTP2Connection._send_connection_init©   sÊ   é € ô )+¯©×(<Ñ(<Øô —‘×(Ñ(×4Ñ4°aä—‘×(Ñ(×?Ñ?ÀÜ—‘×(Ñ(×=Ñ=¸uðð )=ð 
)
ˆ�‰Ô%ð �N‰N×)Ñ)¬"¯+©+×*BÑ*B×*ZÑ*ZÐ[à�‰×*Ñ*Ô,Ø�‰×4Ñ4°UÔ;Ø×'Ñ'¨Ó0×0Ó0ùs   ‚DD&ÄD$ÄD&c              ƒ  óf  #   • [        U5      (       + nUR                   VVs/ s H  u  pEUR                  5       S:X  d  M  UPM     snnS   nSUR                  4SU4SUR                  R
                  4SUR                  R                  4/UR                   VVs/ s H-  u  pEUR                  5       S;  d  M  UR                  5       U4PM/     snn-   nU R                  R                  X'US9  U R                  R                  S	US
9  U R                  U5      I Sh  v•N   gs  snnf s  snnf  N7f)z0
Send the request headers to a given stream ID.
ó   hostr   s   :methods
   :authoritys   :schemes   :path)r“   r   )Ú
end_streamr†   rZ   N)r!   r   r   Úmethodrb   ÚschemeÚtargetr>   Úsend_headersr�   r�   )rM   r    rV   r”   r   ÚvÚ	authorityr   s           r   rr   Ú*AsyncHTTP2Connection._send_request_headersÈ   s  é € ô *¨'Ó2Ô2ˆ
ð $+§?¢?ÔK¢?™4˜1°a·g±g³iÀ7Ñ6J—Q¡?ÒKÈAÑNˆ	ð ˜Ÿ™Ð(Ø˜IÐ&Ø˜Ÿ™×+Ñ+Ð,Ø�w—{‘{×)Ñ)Ð*ð	
ð  Ÿšô
â'‘�Ø�w‰w‹yðñó ˆQ�W‰W‹Y˜‹NÙ'ò
ñ
ˆð 	�‰×#Ñ# IÀ:Ð#ÑNØ�‰×4Ñ4°UÀiÐ4ÑPØ×'Ñ'¨Ó0×0Ñ0ùó' Lùó
ñ 	1ùs6   ‚ D1¢D#Á D#ÁAD1ÂD)Â9D)ÃAD1ÄD/ÄD1c              ƒ  ó¨  #   • [        U5      (       d  g[        UR                  [        R                  5      (       d   e[        UR                  5       ISh  v•N nU  Sh  v•N nU R                  XU5      I Sh  v•N   M%   N+ N" N

 SSS5      ISh  v•N    O! , ISh  v•N  (       d  f       O= fU R                  X5      I Sh  v•N    g7f)z@
Iterate over the request body sending it to a given stream ID.
N)r!   rx   rO   ÚtypingÚAsyncIterabler   Ú_send_stream_dataÚ_send_end_stream)rM   r    rV   ÚiteratorÚchunks        r   rs   Ú'AsyncHTTP2Connection._send_request_bodyç   s¢   é € ô   ×(Ñ(Øä˜'Ÿ.™.¬&×*>Ñ*>×?Ñ?Ð?Ð?Ü% g§n¡n×5Ô5¸Ù'÷ H�eØ×,Ñ,¨WÀÓG×GÒGñ 6ñHÙGð  (÷ 6×5×5×5×5Ð5úð ×#Ñ# GÓ7×7Ò7ùsŠ   ‚ACÁBÁCÁBÁB
Á#BÁ$B
Á'BÁ=BÁ>BÂCÂB
ÂBÂ
BÂCÂBÂCÂB4Â#B&Â$B4Â0CÃCÃCc              ƒ  ó  #   • SnU[        U5      :  as  U R                  X5      I Sh  v•N nX4XE-    nU[        U5      -  nU R                  R                  X&5        U R	                  U5      I Sh  v•N   U[        U5      :  a  Mr  gg N_ N7f)z9
Send a single chunk of data in one or more data frames.
r   N)ÚlenÚ_wait_for_outgoing_flowr>   Ú	send_datar�   )rM   r    rV   ÚdataÚpositionÚmax_flowr¢   s          r   rŸ   Ú&AsyncHTTP2Connection._send_stream_dataõ   s‚   é € ð ˆØœ˜T›Ó"Ø!×9Ñ9¸'ÓM×MˆHØ HÑ$7Ð8ˆEØœ˜E›
Ñ"ˆHØ�N‰N×$Ñ$ YÔ6Ø×+Ñ+¨GÓ4×4Ð4ð œ˜T›×"ÙMñ 5ùs(   ‚&B¨B©ABÁ0B
Á1BÂBÂ
Bc              ƒ  óx   #   • U R                   R                  U5        U R                  U5      I Sh  v•N   g N7f)zP
Send an empty data frame on on a given stream ID with the END_STREAM flag set.
N)r>   r”   r�   )rM   r    rV   s      r   r    Ú%AsyncHTTP2Connection._send_end_stream  s-   é € ð 	�‰×!Ñ! )Ô,Ø×'Ñ'¨Ó0×0Ó0ùs   ‚0:²8³:c              ƒ  ó†  #   •  U R                  X5      I Sh  v•N n[        U[        R                  R                  5      (       a  OME  Sn/ nUR
                  c   eUR
                   HP  u  pgUS:X  a  [        UR                  SSS95      nM&  UR                  S5      (       a  M>  UR                  Xg45        MR     XE4$  N¦7f)zD
Return the response status code and headers for a given stream ID.
NéÈ   s   :statusÚasciiÚignore)Úerrorsó   :)
Ú_receive_stream_eventrx   r:   ÚeventsÚResponseReceivedr   ÚintÚdecodeÚ
startswithÚappend)rM   r    rV   ÚeventÚstatus_coder   r   r™   s           r   rt   Ú&AsyncHTTP2Connection._receive_response
  s´   é € ð Ø×4Ñ4°WÓH×HˆEÜ˜%¤§¡×!;Ñ!;×<Ñ<Øñ ð
 ˆØ-/ˆØ�}‰}Ñ(Ð(Ð(Ø—M”M‰DˆAØ�J‹Ü! !§(¡(¨7¸8 (Ð"DÓE’Ø—\‘\ $×'Ó'Ø—‘ ˜vÖ&ñ	 "ð Ð%Ð%ñ Iùs   ‚C˜B?™B	CÂ&Cc               óÌ  #   •  U R                  X5      I Sh  v•N n[        U[        R                  R                  5      (       an  UR
                  c   eUR                  c   eUR
                  nU R                  R                  XB5        U R                  U5      I Sh  v•N   UR                  7v •  O*[        U[        R                  R                  5      (       a  gMÜ   NÇ NB7f)zM
Iterator that returns the bytes of the response body for a given stream ID.
N)r´   rx   r:   rµ   ÚDataReceivedÚflow_controlled_lengthr¨   r>   Úacknowledge_received_datar�   ÚStreamEnded)rM   r    rV   r»   Úamounts        r   Ú_receive_response_bodyÚ+AsyncHTTP2Connection._receive_response_body  s¸   é € ð Ø×4Ñ4°WÓH×HˆEÜ˜%¤§¡×!7Ñ!7×8Ñ8Ø×3Ñ3Ñ?Ð?Ð?Ø—z‘zÑ-Ð-Ð-Ø×5Ñ5�Ø—‘×8Ñ8¸ÔKØ×/Ñ/°Ó8×8Ð8Ø—j‘jÔ Ü˜E¤2§9¡9×#8Ñ#8×9Ñ9Øñ ÙHñ 9ùs#   ‚C$˜C ™BC$ÂC"Â AC$Ã"C$c              ƒ  ól  #   • U R                   R                  U5      (       d;  U R                  X5      I Sh  v•N   U R                   R                  U5      (       d  M;  U R                   U   R                  S5      n[	        U[
        R                  R                  5      (       a  [        U5      eU$  Nz7f)zk
Return the next available event for a given stream ID.

Will read more data from the network if required.
Nr   )	rI   ÚgetÚ_receive_eventsÚpoprx   r:   rµ   ÚStreamResetr	   )rM   r    rV   r»   s       r   r´   Ú*AsyncHTTP2Connection._receive_stream_event.  sŒ   é € ð —,‘,×"Ñ" 9×-Ñ-Ø×&Ñ& wÓ:×:Ð:ð —,‘,×"Ñ" 9×-Ó-à—‘˜YÑ'×+Ñ+¨AÓ.ˆÜ�eœRŸY™Y×2Ñ2×3Ñ3Ü% eÓ,Ð,Øˆñ	 ;ùs   ‚5B4·B2¸$B4ÁAB4c           	   ƒ  óD  #   • U R                    ISh  v•N   U R                  b]  U R                  R                  nU(       a+  U(       a$  X#:”  a  U =R                  S-  sl        [	        5       e[        U R                  5      eUb!  U R                  R                  U5      (       Gd‡  U R                  U5      I Sh  v•N nU GHg  n[        U[        R                  R                  5      (       aK  [        S[        U5       ISh  v•N nU R                  U5      I Sh  v•N   XVl        SSS5      ISh  v•N   Mx  [        U[        R                  R"                  [        R                  R$                  [        R                  R&                  [        R                  R(                  45      (       aH  UR*                  U R                  ;   a+  U R                  UR*                     R-                  U5        GM2  GM5  [        U[        R                  R.                  5      (       d  GMa  XPl        GMj     SSS5      ISh  v•N   U R1                  U5      I Sh  v•N   g GND GN  GNZ GND GN1! , ISh  v•N  (       d  f       GM¾  = f NI! , ISh  v•N  (       d  f       N^= f NL7f)zX
Read some data from the network until we see one or more events
for a given stream ID.
Nr   Úreceive_remote_settings)rD   rJ   Úlast_stream_idrA   r   r	   rI   rÇ   Ú_read_incoming_datarx   r:   rµ   ÚRemoteSettingsChangedr   rd   Ú_receive_remote_settings_changeru   r¶   r¿   rÂ   rÊ   rV   rº   ÚConnectionTerminatedr�   )rM   r    rV   rÎ   rµ   r»   r   s          r   rÈ   Ú$AsyncHTTP2Connection._receive_events=  sÜ  é € ð
 —?—?“?Ø×*Ñ*Ñ6Ø!%×!<Ñ!<×!KÑ!K�Þ¦°IÓ4NØ×'Ò'¨1Ñ,Õ'Ü0Ó2Ð2Ü)¨$×*EÑ*EÓFÐFð Ñ ¨¯©×(8Ñ(8¸×(CÒ(CØ#×7Ñ7¸Ó@×@�Ü#�EÜ! %¬¯©×)HÑ)H×IÑIÜ#(Ð)BÄFÈG×#TÔ#TÐX]Ø"&×"FÑ"FÀuÓ"M×MÐMØ16Ô.÷ $U×#TÑ#Tô $ØäŸI™I×6Ñ6ÜŸI™I×2Ñ2ÜŸI™I×1Ñ1ÜŸI™I×1Ñ1ð	÷ñ ð !Ÿ?™?¨d¯l©lÓ:Ø ŸL™L¨¯©Ñ9×@Ñ@À×Gò ;ô $ E¬2¯9©9×+IÑ+I×JÔJØ6;×3ñ' $÷! #—?ðJ ×'Ñ'¨Ó0×0Ñ0òK #ò Aò $UÚM÷ $U×#T×#TÓ#Tú÷% #—?—?�?úñJ 	1ùsÅ   ‚J “I”J —B#JÂ:IÂ;AJÄI
ÄJÄI&ÄI 
Ä
I&Ä'JÄ2I#Ä3C*JÈ"JÈ-J È8JÈ9J ÉJÉJ ÉJÉJÉ I&É#JÉ&I?É,I/É-I?É9	JÊJ ÊJÊ
JÊJÊJ c              ƒ  ó”  #   • UR                   R                  [        R                  R                  R
                  5      nU(       aü  [        UR                  U R                  R                  R                  5      nU(       aÀ  X0R                  :w  a°  X0R                  :”  aH  U R                  R                  5       I S h  v•N   U =R                  S-  sl        X0R                  :”  a  MH  X0R                  :  aI  U R                  R                  5       I S h  v•N   U =R                  S-  sl        X0R                  :  a  MH  g g g g g  N† N17f)Nr   )Úchanged_settingsrÇ   r:   r‡   r‰   r‹   ÚminÚ	new_valuer>   ri   rj   rh   rk   rq   rm   )rM   r»   rj   Únew_max_streamss       r   rÑ   Ú4AsyncHTTP2Connection._receive_remote_settings_changei  s  é € Ø!&×!7Ñ!7×!;Ñ!;¼B¿K¹K×<TÑ<T×<kÑ<kÓ!lÐÞ!Ü!Ø&×0Ñ0Ø—‘×-Ñ-×DÑDóˆOö  ?×6GÑ6GÓ#GØ%×(9Ñ(9Ó9Ø×5Ñ5×=Ñ=Ó?×?Ð?Ø×%Ò%¨Ñ*Õ%ð &×(9Ñ(9Õ9ð &×(9Ñ(9Ó9Ø×5Ñ5×=Ñ=Ó?×?Ð?Ø×%Ò%¨Ñ*Õ%ð &×(9Ñ(9×9ð	 $Hˆð "ñ @ñ @ùs0   ‚B;EÂ=EÂ>(EÃ(,EÄEÄ(EÄ?EÅEc              ƒ  óØ  #   • U R                    IS h  v•N   XR                  ;   a/  U R                  R                  5       I S h  v•N   U R                  U	 U R                  (       a*  U R                  (       d  U R                  5       I S h  v•N   O¢U R                  [        R                  :X  a„  U R                  (       ds  [        R                  U l        U R                  b(  [        R                  " 5       nX R                  -   U l        U R                  (       a  U R                  5       I S h  v•N   S S S 5      IS h  v•N   g  GN1 GN N¾ N N! , IS h  v•N  (       d  f       g = f7f©N)rC   rI   rk   rq   rJ   rg   r?   r$   r,   r-   r9   ÚtimeÚ	monotonicr@   rG   )rM   rV   Únows      r   rw   Ú%AsyncHTTP2Connection._response_closedx  sé   é € Ø×#×#Ó#ØŸL™LÓ(Ø×1Ñ1×9Ñ9Ó;×;Ð;Ø—L‘L Ð+Ø×*×*°4·<·<Ø—k‘k“m×#Ñ#à—‘Ô 3× :Ñ :Ó:À4Ç<Ç<Ü1×6Ñ6�”Ø×)Ñ)Ñ5ÜŸ.š.Ó*�CØ&)×,BÑ,BÑ&B�D”OØ×,×,ØŸ+™+›-×'Ð'÷ $×#Ó#â;ñ $ñ (÷ $×#×#Ð#üs|   ‚E*“E”E*—-EÁEÁAEÂE
ÂB"EÄ.EÄ/EÄ3E*Ä>EÄ?E*ÅEÅ
EÅEÅE*ÅE'ÅEÅE'Å#E*c              ƒ  ó²   #   • U R                   R                  5         [        R                  U l        U R
                  R                  5       I S h  v•N   g  N7frÛ   )r>   Úclose_connectionr$   r.   r?   r8   rg   ©rM   s    r   rg   ÚAsyncHTTP2Connection.acloseˆ  s<   é € ð 	�‰×'Ñ'Ô)Ü)×0Ñ0ˆŒØ×"Ñ"×)Ñ)Ó+×+Ó+ùs   ‚AAÁAÁAc              ƒ  óš  #   • UR                   R                  S0 5      nUR                  SS 5      nU R                  b  U R                  e U R                  R	                  U R
                  U5      I S h  v•N nUS:X  a  [        S5      e U R                  R                  U5      nU$  N3! [         a  nXPl        SU l        UeS nAff = f7f)NÚtimeoutÚreadr"   zServer disconnectedT)r_   rÇ   rK   r8   ræ   ÚREAD_NUM_BYTESr	   Ú	ExceptionrH   r>   Úreceive_data)rM   r    Útimeoutsrå   r¨   r{   rµ   s          r   rÏ   Ú(AsyncHTTP2Connection._read_incoming_data‘  sÊ   é € Ø×%Ñ%×)Ñ)¨)°RÓ8ˆØ—,‘,˜v tÓ,ˆà×ÑÑ+Ø×&Ñ&Ð&ð	Ø×-Ñ-×2Ñ2°4×3FÑ3FÈÓP×PˆDØ�s‹{Ü)Ð*?Ó@Ð@ð ð )-¯©×(CÑ(CÀDÓ(Iˆàˆñ% Qøô ó 	ð $'Ô Ø%)ˆDÔ"ØˆIûð	üs<   ‚ACÁ)B* Á4B(Á5B* Â
CÂ(B* Â*
CÂ4CÃCÃCc              ƒ  óâ  #   • UR                   R                  S0 5      nUR                  SS 5      nU R                   IS h  v•N   U R                  R	                  5       nU R
                  b  U R
                  e U R                  R                  XC5      I S h  v•N   S S S 5      IS h  v•N   g  Nl N! [         a  nXPl        SU l	        UeS nAff = f N*! , IS h  v•N  (       d  f       g = f7f)Nrå   ÚwriteT)
r_   rÇ   rE   r>   Údata_to_sendrL   r8   rí   rè   rH   )rM   r    rê   rå   rî   r{   s         r   r�   Ú)AsyncHTTP2Connection._write_outgoing_data­  sÆ   é € Ø×%Ñ%×)Ñ)¨)°RÓ8ˆØ—,‘,˜w¨Ó-ˆà×#×#Ó#ØŸ>™>×6Ñ6Ó8ˆLà×$Ñ$Ñ0Ø×+Ñ+Ð+ðØ×*Ñ*×0Ñ0°ÓG×GÐG÷ $×#Ò#ñ HøÜó ð ),Ô%Ø)-�Ô&Ø�	ûðú÷ $×#×#Ð#üsw   ‚?C/ÁB.ÁC/Á4CÁ:B2ÂB0ÂB2ÂC/Â(CÂ)C/Â0B2Â2
CÂ<CÃCÃCÃC/ÃC,ÃCÃC,Ã(C/c              ƒ  óP  #   • U R                   R                  U5      nU R                   R                  n[        X45      nUS::  a]  U R	                  U5      I Sh  v•N   U R                   R                  U5      nU R                   R                  n[        X45      nUS::  a  M]  U$  NJ7f)zä
Returns the maximum allowable outgoing flow for a given stream.

If the allowable flow is zero, then waits on the network until
WindowUpdated frames have increased the flow rate.
https://tools.ietf.org/html/rfc7540#section-6.9
r   N)r>   Úlocal_flow_control_windowÚmax_outbound_frame_sizerÖ   rÈ   )rM   r    rV   Ú
local_flowÚmax_frame_sizeÚflows         r   r¦   Ú,AsyncHTTP2Connection._wait_for_outgoing_flowÈ  s‘   é € ð Ÿ.™.×BÑBÀ9ÓMˆ
Ø"Ÿn™n×DÑDˆÜ�:Ó.ˆØ�a‹iØ×&Ñ& wÓ/×/Ð/ØŸ™×AÑAÀ)ÓLˆJØ!Ÿ^™^×CÑCˆNÜ�zÓ2ˆDð	 �a�ið
 ˆñ	 0ùs   ‚AB&ÁB$ÁAB&Â"B&c                ó   • XR                   :H  $ rÛ   )r7   ©rM   rN   s     r   ra   Ú'AsyncHTTP2Connection.can_handle_requestÜ  s   € ØŸ™Ñ%Ð%r"   c                ó,   • U R                  5       (       + $ rÛ   )Ú	is_closedrâ   s    r   Úis_connectedÚ!AsyncHTTP2Connection.is_connectedß  s   € Ø—>‘>Ó#Ô#Ð#r"   c                ó6  • U R                   [        R                  :g  =(       av    U R                  (       + =(       a^    U R                  (       + =(       aF    U R
                  R                  R                  [        R                  R                  R                  :X  + $ rÛ   )r?   r$   r.   rH   rG   r>   Ústate_machineÚstater:   r;   ÚConnectionStaterâ   s    r   Úis_availableÚ!AsyncHTTP2Connection.is_availableâ  sn   € à�K‰KÔ.×5Ñ5Ñ5÷ aØ×*Ñ*Ô*÷aà×-Ñ-Ô-÷að —^‘^×1Ñ1×7Ñ7¼2¿=¹=×;XÑ;X×;_Ñ;_Ò`ð		
r"   c                ób   • [         R                  " 5       nU R                  nUS L=(       a    X:„  $ rÛ   )rÜ   rÝ   r@   )rM   rÞ   Ú	expire_ats      r   Úhas_expiredÚ AsyncHTTP2Connection.has_expiredê  s+   € Ü�nŠnÓˆð —O‘Oˆ	Ø Ð$×8¨©Ð8r"   c                ó<   • U R                   [        R                  :H  $ rÛ   )r?   r$   r-   râ   s    r   Úis_idleÚAsyncHTTP2Connection.is_idleñ  s   € Ø�{‰{Ô1×6Ñ6Ñ6Ð6r"   c                ó   • g)NTr'   râ   s    r   Úcan_multiplexÚ"AsyncHTTP2Connection.can_multiplexô  s   € Ør"   c                ó<   • U R                   [        R                  :H  $ rÛ   )r?   r$   r.   râ   s    r   rû   ÚAsyncHTTP2Connection.is_closed÷  s   € Ø�{‰{Ô1×8Ñ8Ñ8Ð8r"   c                ó~   • [        U R                  5      nU< SU R                  R                   SU R                   3$ )Nz
, HTTP/2, ú, Request Count: )Ústrr7   r?   ÚnamerA   rø   s     r   ÚinfoÚAsyncHTTP2Connection.infoú  s:   € Ü�T—\‘\Ó"ˆØ‘˜: d§k¡k×&6Ñ&6Ð%7Ð7HÈ×I\ÑI\ÐH]Ð^Ð^r"   c           	     ó´   • U R                   R                  n[        U R                  5      nSU SU< SU R                  R
                   SU R                   S3	$ )NÚ<z [z, r  z]>)Ú	__class__r(   r  r7   r?   r  rA   )rM   Ú
class_namerN   s      r   Ú__repr__ÚAsyncHTTP2Connection.__repr__þ  sU   € Ø—^‘^×,Ñ,ˆ
Ü�T—\‘\Ó"ˆØ�:�,˜b ¡
¨"¨T¯[©[×-=Ñ-=Ð,>Ð>OÐPT×PcÑPcÐOdÐdfÐgÐgr"   c              ƒ  ó   #   • U $ 7frÛ   r'   râ   s    r   Ú
__aenter__ÚAsyncHTTP2Connection.__aenter__  s
   é € Øˆùs   ‚c              ƒ  ó@   #   • U R                  5       I S h  v•N   g  N7frÛ   )rg   )rM   Úexc_typeÚ	exc_valueÚ	tracebacks       r   Ú	__aexit__ÚAsyncHTTP2Connection.__aexit__	  s   é € ð �k‰k‹m×Óùs   ‚–—)rH   rJ   rI   r@   r>   rB   r9   rh   rk   r8   r7   rK   rD   rA   rF   r?   rC   rG   rL   rE   rÛ   )rN   r
   rO   r   rP   zfloat | None)r    r   Úreturnr   )r    r   r%  ÚNone)r    r   rV   r·   r%  r&  )r    r   rV   r·   r¨   Úbytesr%  r&  )r    r   rV   r·   r%  z%tuple[int, list[tuple[bytes, bytes]]])r    r   rV   r·   r%  úAsyncGenerator[bytes])r    r   rV   r·   r%  zKh2.events.ResponseReceived | h2.events.DataReceived | h2.events.StreamEnded)r    r   rV   z
int | Noner%  r&  )r»   zh2.events.RemoteSettingsChangedr%  r&  )rV   r·   r%  r&  ©r%  r&  )r    r   r%  zlist[h2.events.Event])r    r   rV   r·   r%  r·   )rN   r
   r%  Úbool)r%  r*  )r%  r  )r%  r1   )NNN)r   ztype[BaseException] | Noner!  zBaseException | Noner"  ztypes.TracebackType | Noner%  r&  )&r(   r)   r*   r+   rç   r:   r6   ÚH2Configurationr=   rQ   r€   re   rr   rs   rŸ   r    rt   rÄ   r´   rÈ   rÑ   rw   rg   rÏ   r�   r¦   ra   rü   r  r  r	  r  rû   r  r  r  r#  r/   r'   r"   r   r1   r1   %   s  † Ø€NØ�Y‰Y×&Ñ&ÀÐ&ÐF€Fð *.ð	 7àð 7ð #ð 7ð 'õ	 7ôD\ô|1ô>1ô>8ô
5ô1ô&ô(ð ØðØ+.ðà	Tôö*1ôX+ô(ô ,ôô8ô6ô(&ô$ô
ô9ô7ôô9ô_ôhôð
 04Ø*.Ø04ð	à,ðð (ðð .ð	ð
 
÷ð r"   r1   c                  ó2   • \ rS rSrSS jrSS jrS	S jrSrg)
rv   i  c                ó6   • Xl         X l        X0l        SU l        g )NF)Ú_connectionÚ_requestÚ
_stream_idÚ_closed)rM   r;   r    rV   s       r   rQ   Ú"HTTP2ConnectionByteStream.__init__  s   € Ø%ÔØŒØ#ŒØˆ�r"   c               óŽ  #   • U R                   U R                  S.n [        S[        U R                   U5       IS h  v•N   [	        U R
                  R                  U R                   U R                  S95       IS h  v•N nU  S h  v•N nU7v •  M   NV N N
 S S S 5      IS h  v•N    O! , IS h  v•N  (       d  f       O= fS S S 5      IS h  v•N    g ! , IS h  v•N  (       d  f       g = f! [         aE  n[        5          U R                  5       I S h  v•N    S S S 5        Ue! , (       d  f       Ue= fS nAff = f7f)NrU   Úreceive_response_body)
r/  r0  r   rd   r   r.  rÄ   rf   r   rg   )rM   r~   r¡   r¢   r{   s        r   Ú	__aiter__Ú#HTTP2ConnectionByteStream.__aiter__  sú   é € Ø!Ÿ]™]¸¿¹ÑIˆð	ÜÐ4´f¸d¿m¹mÈV×TÕTÜ-Ø×$Ñ$×;Ñ;ÀDÇMÁMÐ]a×]lÑ]lÐ;Ðm÷ô àÙ'/÷ $˜eØ#�ñ Uññ$ x÷÷ ÷ ÷ ÷ ð ú÷ U×T×T×T×TÐTûô ó 	ô )Õ*Ø—k‘k“m×#Ñ#÷ +àˆI÷ +Ô*àˆIþð	üsþ   ‚E� C3 ½B¾C3 Á<CÁ=BÁ>CÂB-ÂBÂB
Â	BÂB-ÂC3 ÂCÂBÂB-ÂCÂ&B)Â'CÂ-C	Â3B6Â4C	Ã CÃC3 ÃCÃC3 ÃEÃC0ÃC"Ã C0Ã,C3 Ã/EÃ0C3 Ã3
EÃ=
D=ÄD+ÄDÄD+Ä!
D=Ä+
D:	Ä5D=Ä=EÅEc              ƒ  óZ  #   • U R                   (       dv  SU l         SU R                  0n[        S[        U R                  U5       IS h  v•N   U R
                  R                  U R                  S9I S h  v•N   S S S 5      IS h  v•N   g g  NA N N
! , IS h  v•N  (       d  f       g = f7f)NTrV   r`   rZ   )r1  r0  r   rd   r/  r.  rw   )rM   r~   s     r   rg   Ú HTTP2ConnectionByteStream.aclose*  s�   é € Ø�|�|ØˆDŒLØ! 4§?¡?Ð3ˆFÜÐ.´¸¿¹Àv×NÕNØ×&Ñ&×7Ñ7À$Ç/Á/Ð7ÐR×RÐR÷ O×NÐNð ñ OÙR÷ O×N×NÐNüsZ   ‚AB+Á	BÁ
B+Á'BÁ4BÁ5BÁ9B+ÂBÂB+ÂBÂB+ÂB(ÂBÂB(Â$B+)r1  r.  r/  r0  N)r;   r1   r    r   rV   r·   r%  r&  )r%  r(  r)  )r(   r)   r*   r+   rQ   r5  rg   r/   r'   r"   r   rv   rv     s   † ôô÷"Sr"   rv   )r    r   r%  r*  )*Ú
__future__r   ÚenumÚloggingrÜ   Útypesr�   Úcollections.abcr   Ú	h2.configr:   Úh2.connectionÚ	h2.eventsÚh2.exceptionsÚh2.settingsÚ_backends.baser   Ú_exceptionsr   r   r	   Ú_modelsr
   r   r   Ú_synchronizationr   r   r   Ú_tracer   Ú_utilsr   Ú
interfacesr   Ú	getLoggerrd   r!   ÚIntEnumr$   r1   rv   r'   r"   r   Ú<module>rL     sŠ   ðÝ "ã Û Û Û Û Ý *ã Û Û Û Û å /ß YÑ Yß /Ñ /ß QÑ QÝ Ý 'Ý 0à	×	Ò	Ð,Ó	-€ôqô˜$Ÿ,™,ô ôjÐ3ô j÷ZSò Sr"   