§
    VøÁiæ*  ã                   óì   — d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Zd dl
Zd dlZd dlZd dlZd dlmZmZmZmZmZ ej        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdS )	é    N)ÚQUIC_MAX_DATAGRAMÚBaseQuicConnectionÚBaseQuicManagerÚBaseQuicStreamÚUnexpectedEOFc                   óR   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zdd„Zdd„Zd„ Zd	„ Z	d
„ Z
d„ Zˆ xZS )ÚSyncQuicStreamc                 ó¬   •— t          ¦   «                              ||¦  «         t          j        ¦   «         | _        t          j        ¦   «         | _        d S ©N)ÚsuperÚ__init__Ú	threadingÚ	ConditionÚ_wake_upÚLockÚ_lock)ÚselfÚ
connectionÚ	stream_idÚ	__class__s      €úX/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/dns/quic/_sync.pyr   zSyncQuicStream.__init__    s@   ø€ Ý‰Œ×Ò˜ YÑ/Ô/Ð/Ý!Ô+Ñ-Ô-ˆŒÝ”^Ñ%Ô%ˆŒ
ˆ
ˆ
ó    c                 óp  — 	 |                       |¦  «        }| j        5  | j                             |¦  «        r	 d d d ¦  «         d S || _        d d d ¦  «         n# 1 swxY w Y   | j        5  | j                             |¦  «        st          j        j	        ‚	 d d d ¦  «         n# 1 swxY w Y   d| _        Œ¶)NTr   )
Ú_timeout_from_expirationr   Ú_bufferÚhaveÚ
_expectingr   ÚwaitÚdnsÚ	exceptionÚTimeout)r   ÚamountÚ
expirationÚtimeouts       r   Úwait_forzSyncQuicStream.wait_for%   sX  € ð		 Ø×3Ò3°JÑ?Ô?ˆGØ”ð )ð )Ø”<×$Ò$ VÑ,Ô,ð Øð)ð )ð )ñ )ô )ð )ð )ð )ð #)�”ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð ”ð 0ð 0Ø”}×)Ò)¨'Ñ2Ô2ð 0Ýœ-Ô/Ð/ð0ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð  ˆDŒOð		 s)   žAÁAÁAÁ!AÁ,,B%Â%B)Â,B)c                 óT  — 	 |                       |¦  «        }| j        5  | j                             ¦   «         r	 d d d ¦  «         d S 	 d d d ¦  «         n# 1 swxY w Y   | j        5  | j                             |¦  «        st          j        j        ‚	 d d d ¦  «         n# 1 swxY w Y   Œ¨r   )	r   r   r   Úseen_endr   r   r   r    r!   )r   r#   r$   s      r   Úwait_for_endzSyncQuicStream.wait_for_end1   sI  € ð	0Ø×3Ò3°JÑ?Ô?ˆGØ”ð ð Ø”<×(Ò(Ñ*Ô*ð Øðð ð ñ ô ð ð ð ððð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ”ð 0ð 0Ø”}×)Ò)¨'Ñ2Ô2ð 0Ýœ-Ô/Ð/ð0ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð	0s#   žAÁAÁAÁ%,BÂB"Â%B"Nc                 óf  — |                       |¦  «        }| j                             ¦   «         rO|                      |¦  «         | j        5  | j                             ¦   «         cd d d ¦  «         S # 1 swxY w Y   d S |                      d|¦  «         | j        5  t          j	        d| j         
                    d¦  «        ¦  «        \  }d d d ¦  «         n# 1 swxY w Y   |                      ||¦  «         | j        5  | j         
                    |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Né   z!H)Ú_expiration_from_timeoutÚ_connectionÚis_h3r(   r   r   Úget_allr%   ÚstructÚunpackÚget)r   r$   r#   Úsizes       r   ÚreceivezSyncQuicStream.receive;   s÷  € Ø×2Ò2°7Ñ;Ô;ˆ
ØÔ×!Ò!Ñ#Ô#ð 
	.Ø×Ò˜jÑ)Ô)Ð)Ø”ð .ð .Ø”|×+Ò+Ñ-Ô-ð.ð .ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .ð �MŠM˜!˜ZÑ(Ô(Ð(Ø”ð Cð CÝ œ-¨¨d¬l×.>Ò.>¸qÑ.AÔ.AÑBÔB‘�ðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cà�MŠM˜$ 
Ñ+Ô+Ð+Ø”ð .ð .Ø”|×'Ò'¨Ñ-Ô-ð.ð .ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .s6   ÁA1Á1A5Á8A5Â0CÃCÃCÃ?D&Ä&D*Ä-D*Fc                 ór   — |                       |¦  «        }| j                             | j        ||¦  «         d S r   )Ú_encapsulater,   ÚwriteÚ
_stream_id)r   ÚdatagramÚis_endÚdatas       r   ÚsendzSyncQuicStream.sendI   s8   € Ø× Ò  Ñ*Ô*ˆØÔ×Ò˜tœ°°fÑ=Ô=Ð=Ð=Ð=r   c                 ó¨   — |                       ||¦  «        r;| j        5  | j                             ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S d S r   )Ú_common_add_inputr   Únotify)r   r:   r9   s      r   Ú
_add_inputzSyncQuicStream._add_inputM   s¤   € Ø×!Ò! $¨Ñ/Ô/ð 	'Ø”ð 'ð 'Ø”×$Ò$Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 'ð	'ð 	's   žAÁA	ÁA	c                 ón   — | j         5  |                      ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S r   )r   Ú_close©r   s    r   ÚclosezSyncQuicStream.closeR   s{   € ØŒZð 	ð 	Ø�KŠK‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ˆ*ª.±.c                 ó   — | S r   © rB   s    r   Ú	__enter__zSyncQuicStream.__enter__V   ó   € Øˆr   c                 óž   — |                       ¦   «          | j        5  | j                             ¦   «          d d d ¦  «         n# 1 swxY w Y   dS ©NF)rC   r   r>   )r   Úexc_typeÚexc_valÚexc_tbs       r   Ú__exit__zSyncQuicStream.__exit__Y   s…   € Ø�
Š
‰ŒˆØŒ]ð 	#ð 	#ØŒM× Ò Ñ"Ô"Ð"ð	#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#àˆus   œAÁAÁ	Ar   ©F)Ú__name__Ú
__module__Ú__qualname__r   r%   r(   r3   r;   r?   rC   rF   rM   Ú__classcell__©r   s   @r   r	   r	      sº   ø€ € € € € ð&ð &ð &ð &ð &ð

 ð 
 ð 
 ð0ð 0ð 0ð.ð .ð .ð .ð>ð >ð >ð >ð'ð 'ð 'ð
ð ð ðð ð ðð ð ð ð ð ð r   r	   c                   ót   ‡ — e Zd Zˆ fd„Zd„ Zd„ Zd„ Zd„ Zdd„Zdˆ fd„	Z	dˆ fd	„	Z
d
„ Zdd„Zˆ fd„Zd„ Zˆ xZS )ÚSyncQuicConnectionc                 óØ  •— t          ¦   «                              ||||||¦  «         t          | j        t          j        d¦  «        | _        | j        �l	 | j                             t          j
                             | j        | j        ¦  «        ¦  «         n(# t          $ r | j                             ¦   «          ‚ w xY w| j                             | j        ¦  «         t	          j        ¦   «         \  | _        | _        | j                             d¦  «         | j                             d¦  «         t)          j        ¦   «         | _        d | _        t)          j        ¦   «         | _        d S )Nr   F)r   r   Úsocket_factoryÚ_afÚsocketÚ
SOCK_DGRAMÚ_socketÚ_sourceÚbindr   ÚinetÚlow_level_address_tupleÚ	ExceptionrC   ÚconnectÚ_peerÚ
socketpairÚ_send_wakeupÚ_receive_wakeupÚsetblockingr   ÚEventÚ_handshake_completeÚ_worker_threadr   r   )r   r   ÚaddressÚportÚsourceÚsource_portÚmanagerr   s          €r   r   zSyncQuicConnection.__init__a   sA  ø€ Ý‰Œ×Ò˜ W¨d°F¸KÈÑQÔQÐQÝ% d¤hµÔ0AÀ1ÑEÔEˆŒØŒ<Ð#ðØ”×!Ò!Ý”H×4Ò4°T´\À4Ä8ÑLÔLñô ð ð øõ ð ð ð Ø”×"Ò"Ñ$Ô$Ð$Øðøøøð 	Œ×Ò˜TœZÑ(Ô(Ð(Ý4:Ô4EÑ4GÔ4GÑ1ˆÔ	˜DÔ0ØÔ×(Ò(¨Ñ/Ô/Ð/ØŒ× Ò  Ñ'Ô'Ð'Ý#,¤?Ñ#4Ô#4ˆÔ Ø"ˆÔÝ”^Ñ%Ô%ˆŒ
ˆ
ˆ
s   ÁAB Â%B=c                 ó6  — d}|dk     r�|dz  }	 | j                              t          ¦  «        }n# t          $ r Y d S w xY w| j        5  | j                             || j        t          j        ¦   «         ¦  «         d d d ¦  «         n# 1 swxY w Y   |dk     °Žd S d S )Nr   é
   é   )	r[   Úrecvr   ÚBlockingIOErrorr   r,   Úreceive_datagramrb   Útime)r   Úcountr8   s      r   Ú_readzSyncQuicConnection._readt   sü   € ØˆØ�bŠjˆjØ�Q‰JˆEðØœ<×,Ò,Õ->Ñ?Ô?��øÝ"ð ð ð Ø��ðøøøà”ð Uð UØÔ ×1Ò1°(¸D¼JÍÌ	ÉÌÑTÔTÐTðUð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uð �bŠjˆjˆjˆjˆjˆjs   �/ ¯
=¼=Á3BÂB
ÂB
c                 ó`   — 	 	 | j                              d¦  «         n# t          $ r Y d S w xY wŒ.)NTé    )re   rr   rs   rB   s    r   Ú_drain_wakeupz SyncQuicConnection._drain_wakeup   sM   € ð	ðØÔ$×)Ò)¨"Ñ-Ô-Ð-Ð-øÝ"ð ð ð Ø��ðøøøð	s   ƒ ž
,«,c                 óÒ  — 	 t          j        ¦   «         5 }|                     | j        t           j        | j        ¦  «         |                     | j        t           j        | j        ¦  «         | j        �s|  	                    d¦  «        \  }}| 
                    |¦  «        }|D ]\  }}|                     ¦   «          Œ| j        5  |                      |¦  «         d d d ¦  «         n# 1 swxY w Y   |                      ¦   «          | j        5  | j                             t#          j        ¦   «         ¦  «        }d d d ¦  «         n# 1 swxY w Y   |D ]0\  }}	 | j                             |¦  «         Œ!# t&          $ r Y Œ-w xY w| j        �¯d d d ¦  «         n# 1 swxY w Y   n# t(          $ r Y nw xY w| j        5  d| _        d d d ¦  «         n# 1 swxY w Y   | j                             ¦   «          | j                             ¦   «          d S # | j        5  d| _        d d d ¦  «         n# 1 swxY w Y   | j                             ¦   «          | j                             ¦   «          w xY w)NFT)Ú	selectorsÚDefaultSelectorÚregisterr[   Ú
EVENT_READrw   re   rz   Ú_doneÚ_get_timer_valuesÚselectr:   r   Ú_handle_timerÚ_handle_eventsr,   Údatagrams_to_sendru   r;   rs   r`   rC   rh   Úset)	r   Úselr#   ÚintervalÚitemsÚkeyÚ_Ú	datagramsr8   s	            r   Ú_workerzSyncQuicConnection._worker†   s¼  € ð	+ÝÔ*Ñ,Ô,ð !°Ø—’˜Tœ\­9Ô+?ÀÄÑLÔLÐLØ—’ØÔ(­)Ô*>ÀÔ@Rñô ð ð œ*ñ !Ø-1×-CÒ-CÀEÑ-JÔ-JÑ*�Z ØŸJšJ xÑ0Ô0�EØ"'ð #ð #™˜˜QØŸš™
œ
˜
˜
Øœð 7ð 7Ø×*Ò*¨:Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7à×'Ò'Ñ)Ô)Ð)Øœð Tð TØ$(Ô$4×$FÒ$FÅtÄyÁ{Ä{Ñ$SÔ$S˜	ðTð Tð Tñ Tô Tð Tð Tð Tð Tð Tð Tøøøð Tð Tð Tð Tà'0ð !ð !™˜ !ð!Ø œL×-Ò-¨hÑ7Ô7Ð7Ð7øÝ.ð !ð !ð !à ˜Dð!øøøð œ*ñ !ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !øøõ* ð 	ð 	ð 	ð ˆDð	øøøð
 ”ð "ð "Ø!�”
ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "àŒL×ÒÑ Ô Ð àÔ$×(Ò(Ñ*Ô*Ð*Ð*Ð*øð	 ”ð "ð "Ø!�”
ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "àŒL×ÒÑ Ô Ð àÔ$×(Ò(Ñ*Ô*Ð*Ð*øøøsï   ‚F" •B/FÃC&ÃFÃ&C*	Ã*FÃ-C*	Ã.FÄ,EÄ8FÅE	ÅFÅE	Å
FÅE2Å1FÅ2
E?Å<FÅ>E?Å?FÆ
F" ÆFÆF" ÆFÆF" Æ!H Æ"
F/Æ,H Æ.F/Æ/H Æ9GÇGÇGÈI&ÈH(ÈI&È(H,È,I&È/H,È06I&c                 óp  — 	 | j         5  | j                             ¦   «         }d d d ¦  «         n# 1 swxY w Y   |€d S t          |t          j        j        j        ¦  «        �rÐ|                      ¦   «         �rY| j	        €J ‚| j	         
                    |¦  «        }|D �]0}t          |t          j        j        j        ¦  «        r…| j         5  | j                             |j        ¦  «        }d d d ¦  «         n# 1 swxY w Y   |rD|j        €|j        |_        n|j        €|j        |_        |j        r|                     dd¦  «         Œ¬t          |t          j        j        j        ¦  «        r`| j         5  | j                             |j        ¦  «        }d d d ¦  «         n# 1 swxY w Y   |r |                     |j        |j        ¦  «         �Œ2�ne| j         5  | j                             |j        ¦  «        }d d d ¦  «         n# 1 swxY w Y   |r |                     |j        |j        ¦  «         �nt          |t          j        j        j        ¦  «        r| j                             ¦   «          nÅt          |t          j        j        j        ¦  «        r'| j         5  d| _        d d d ¦  «         n# 1 swxY w Y   nzt          |t          j        j        j        ¦  «        rV| j         5  | j                             |j        ¦  «        }d d d ¦  «         n# 1 swxY w Y   |r|                     dd¦  «         �Œ6)NTr   )r   r,   Ú
next_eventÚ
isinstanceÚaioquicÚquicÚeventsÚStreamDataReceivedr-   Ú_h3_connÚhandle_eventÚh3ÚHeadersReceivedÚ_streamsr1   r   Ú_headersÚheadersÚ	_trailersÚstream_endedr?   ÚDataReceivedr:   Ú
end_streamÚHandshakeCompletedrh   r†   ÚConnectionTerminatedr€   ÚStreamReset)r   ÚeventÚ	h3_eventsÚh3_eventÚstreams        r   r„   z!SyncQuicConnection._handle_events¨   sÀ  € ð'	1Ø”ð 6ð 6ØÔ(×3Ò3Ñ5Ô5�ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6àˆ}Ø�Ý˜%¥¤Ô!4Ô!GÑHÔHñ "1Ø—:’:‘<”<ñ HØœ=Ð4Ð4Ð4Ø $¤× :Ò :¸5Ñ AÔ A�IØ$-ð Xñ X˜Ý% hµ´
Ô0AÔ0QÑRÔRð XØ!%¤ð Lð LØ)-¬×):Ò):¸5¼?Ñ)KÔ)K ðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Là%ð AØ#)¤?Ð#:Ø6>Ô6F F¤O OØ%+Ô%5Ð%=Ø7?Ô7G FÔ$4Ø#+Ô#8ð !AØ$*×$5Ò$5°c¸4Ñ$@Ô$@Ð$@øÝ'¨µ'´*Ô2CÔ2PÑQÔQð XØ!%¤ð Lð LØ)-¬×):Ò):¸5¼?Ñ)KÔ)K ðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Là%ð XØ &× 1Ò 1°(´-ÀÔAVÑ WÔ WÐ WùñXð" œð Dð DØ!%¤×!2Ò!2°5´?Ñ!CÔ!C˜ðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dàð HØ×)Ò)¨%¬*°eÔ6FÑGÔGÐGùÝ˜E¥7¤<Ô#6Ô#IÑJÔJð 	1ØÔ(×,Ò,Ñ.Ô.Ð.Ð.Ý˜E¥7¤<Ô#6Ô#KÑLÔLð 1Ø”Zð &ð &Ø!%�D”Jð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &øå˜E¥7¤<Ô#6Ô#BÑCÔCð 1Ø”Zð @ð @Ø!œ]×.Ò.¨u¬Ñ?Ô?�Fð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @àð 1Ø×%Ò% c¨4Ñ0Ô0Ð0ñO'	1sf   ‰/¯3¶3Ã C7Ã7C;	Ã>C;	Å4 F Æ F$	Æ'F$	Ç HÈHÈHÊJ0Ê0J4Ê7J4Ë' LÌLÌLFc                 ó°   — | j         5  | j                             |||¦  «         d d d ¦  «         n# 1 swxY w Y   | j                             d¦  «         d S ©Nó   )r   r,   Úsend_stream_datard   r;   )r   r¦   r:   r9   s       r   r6   zSyncQuicConnection.writeÒ   s¨   € ØŒZð 	Dð 	DØÔ×-Ò-¨f°d¸FÑCÔCÐCð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	DàÔ×Ò˜wÑ'Ô'Ð'Ð'Ð's   ˆ1±5¸5c                 óÈ   •— | j         5  t          ¦   «                              |||¦  «         d d d ¦  «         n# 1 swxY w Y   |r| j                             d¦  «         d S d S r¨   )r   r   Úsend_headersrd   r;   )r   r   r›   r9   r   s       €r   r¬   zSyncQuicConnection.send_headers×   s«   ø€ ØŒZð 	=ð 	=Ý‰GŒG× Ò  ¨G°VÑ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=àð 	,ØÔ×"Ò" 7Ñ+Ô+Ð+Ð+Ð+ð	,ð 	,ó   ‰$9¹=Á =c                 óÈ   •— | j         5  t          ¦   «                              |||¦  «         d d d ¦  «         n# 1 swxY w Y   |r| j                             d¦  «         d S d S r¨   )r   r   Ú	send_datard   r;   )r   r   r:   r9   r   s       €r   r¯   zSyncQuicConnection.send_dataÝ   s«   ø€ ØŒZð 	7ð 	7Ý‰GŒG×Ò˜i¨¨vÑ6Ô6Ð6ð	7ð 	7ð 	7ñ 	7ô 	7ð 	7ð 	7ð 	7ð 	7ð 	7ð 	7øøøð 	7ð 	7ð 	7ð 	7àð 	,ØÔ×"Ò" 7Ñ+Ô+Ð+Ð+Ð+ð	,ð 	,r­   c                 óˆ   — | j         rd S t          j        | j        ¬¦  «        | _        | j                             ¦   «          d S )N)Útarget)Ú_closedr   ÚThreadr�   ri   ÚstartrB   s    r   ÚrunzSyncQuicConnection.runã   sD   € ØŒ<ð 	ØˆFÝ'Ô.°d´lÐCÑCÔCˆÔØÔ×!Ò!Ñ#Ô#Ð#Ð#Ð#r   Nc                 ó  — | j                              |¦  «        st          j        j        ‚| j        5  | j        rt          ‚| j         	                    d¦  «        }t          | |¦  «        }|| j        |<   d d d ¦  «         n# 1 swxY w Y   |S rI   )rh   r   r   r    r!   r   r€   r   r,   Úget_next_available_stream_idr	   r™   )r   r$   r   r¦   s       r   Úmake_streamzSyncQuicConnection.make_streamé   sË   € ØÔ'×,Ò,¨WÑ5Ô5ð 	(Ý”-Ô'Ð'ØŒZð 	.ð 	.ØŒzð $Ý#Ð#ØÔ(×EÒEÀeÑLÔLˆIÝ# D¨)Ñ4Ô4ˆFØ'-ˆDŒM˜)Ñ$ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð ˆs   ³ABÂBÂ	Bc                 óŠ   •— | j         5  t          ¦   «                              |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r   )r   r   Úclose_stream)r   r   r   s     €r   rº   zSyncQuicConnection.close_streamô   s‡   ø€ ØŒZð 	,ð 	,Ý‰GŒG× Ò  Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s   ‰"8¸<¿<c                 ó–  — | j         5  | j        r	 d d d ¦  «         d S | j        �1| j                             | j        d         | j        d         ¦  «         d| _        | j                             ¦   «          | j                             d¦  «         d d d ¦  «         n# 1 swxY w Y   | j	        �| j	         
                    ¦   «          d S d S )Nr   rq   Tr©   )r   r²   Ú_managerÚclosedrb   r,   rC   rd   r;   ri   ÚjoinrB   s    r   rC   zSyncQuicConnection.closeø   s#  € ØŒZð 	,ð 	,ØŒ|ð Øð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð Œ}Ð(Ø”×$Ò$ T¤Z°¤]°D´J¸q´MÑBÔBÐBØˆDŒLØÔ×"Ò"Ñ$Ô$Ð$ØÔ×"Ò" 7Ñ+Ô+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð ÔÐ*ØÔ×$Ò$Ñ&Ô&Ð&Ð&Ð&ð +Ð*s   ˆ	BžA2BÂB Â#B rN   r   )rO   rP   rQ   r   rw   rz   r�   r„   r6   r¬   r¯   rµ   r¸   rº   rC   rR   rS   s   @r   rU   rU   `   s  ø€ € € € € ð&ð &ð &ð &ð &ð&	Uð 	Uð 	Uðð ð ð +ð  +ð  +ðD(1ð (1ð (1ðT(ð (ð (ð (ð
,ð ,ð ,ð ,ð ,ð ,ð,ð ,ð ,ð ,ð ,ð ,ð$ð $ð $ð	ð 	ð 	ð 	ð,ð ,ð ,ð ,ð ,ð
'ð 
'ð 
'ð 
'ð 
'ð 
'ð 
'r   rU   c                   ón   ‡ — e Zd Zdej        ddfˆ fd„	Z	 	 	 	 	 dd„Zˆ fd„Zˆ fd	„Zˆ fd
„Z	d„ Z
d„ Zˆ xZS )ÚSyncQuicManagerNFc                 óŒ   •— t          ¦   «                              ||t          ||¦  «         t          j        ¦   «         | _        d S r   )r   r   rU   r   r   r   )r   ÚconfÚverify_modeÚserver_namer—   r   s        €r   r   zSyncQuicManager.__init__  s9   ø€ õ 	‰Œ×Ò˜˜{Õ,>ÀÈRÑPÔPÐPÝ”^Ñ%Ô%ˆŒ
ˆ
ˆ
r   éU  r   Tc           	      ó®   — | j         5  |                      ||||||¦  «        \  }}|r|                     ¦   «          |cd d d ¦  «         S # 1 swxY w Y   d S r   )r   Ú_connectrµ   )	r   rj   rk   rl   rm   Úwant_session_ticketÚ
want_tokenr   r´   s	            r   ra   zSyncQuicManager.connect  s³   € ð ŒZð 	ð 	Ø"&§-¢-Ø˜˜v {Ð4GÈñ#ô #ÑˆZ˜ð ð !Ø—’Ñ Ô Ð Øð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ˆ5A
Á
AÁAc                 óŒ   •— | j         5  t          ¦   «                              ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r   )r   r   r½   )r   rj   rk   r   s      €r   r½   zSyncQuicManager.closed  s‡   ø€ ØŒZð 	*ð 	*Ý‰GŒG�NŠN˜7 DÑ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s   ‰#9¹=Á =c                 óŽ   •— | j         5  t          ¦   «                              |||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r   )r   r   Úsave_session_ticket)r   rj   rk   Úticketr   s       €r   rÌ   z#SyncQuicManager.save_session_ticket!  s‹   ø€ ØŒZð 	?ð 	?Ý‰GŒG×'Ò'¨°°vÑ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ó   ‰$:º>Á>c                 óŽ   •— | j         5  t          ¦   «                              |||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r   )r   r   Ú
save_token)r   rj   rk   Útokenr   s       €r   rÐ   zSyncQuicManager.save_token%  s‹   ø€ ØŒZð 	5ð 	5Ý‰GŒG×Ò˜w¨¨eÑ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ð 	5ð 	5rÎ   c                 ó   — | S r   rE   rB   s    r   rF   zSyncQuicManager.__enter__)  rG   r   c                 ó„   — t          | j                             ¦   «         ¦  «        }|D ]}|                     ¦   «          ŒdS rI   )ÚlistÚ_connectionsÚvaluesrC   )r   rJ   rK   rL   Úconnectionsr   s         r   rM   zSyncQuicManager.__exit__,  sI   € õ ˜4Ô,×3Ò3Ñ5Ô5Ñ6Ô6ˆØ%ð 	ð 	ˆJØ×ÒÑÔÐÐØˆur   )rÅ   Nr   TT)rO   rP   rQ   ÚsslÚCERT_REQUIREDr   ra   r½   rÌ   rÐ   rF   rM   rR   rS   s   @r   rÀ   rÀ     s×   ø€ € € € € à SÔ%6ÀDÈUð&ð &ð &ð &ð &ð &ð ØØØ Øðð ð ð ð"*ð *ð *ð *ð *ð?ð ?ð ?ð ?ð ?ð5ð 5ð 5ð 5ð 5ðð ð ðð ð ð ð ð ð r   rÀ   )r|   rY   rØ   r/   r   ru   Úaioquic.h3.connectionr‘   Úaioquic.h3.eventsÚaioquic.quic.configurationÚaioquic.quic.connectionÚaioquic.quic.eventsÚdns.exceptionr   Údns.inetÚdns.quic._commonr   r   r   r   r   rW   r	   rU   rÀ   rE   r   r   ú<module>râ      sv  ðð Ð Ð Ð Ø €€€Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø €€€à Ð Ð Ð Ø Ð Ð Ð Ø !Ð !Ð !Ð !Ø Ð Ð Ð Ø Ð Ð Ð à Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ”€ð>ð >ð >ð >ð >�^ñ >ô >ð >ðBb'ð b'ð b'ð b'ð b'Ð+ñ b'ô b'ð b'ðJ-ð -ð -ð -ð -�oñ -ô -ð -ð -ð -r   