+
    niO+                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIH	t	 ^ RI
t^ RIt^ RIt^ RIt^ RItRt^t]^,          t ! R R]4      t ! R R4      t ! R R	4      t ! R
 R4      t ! R R]4      t ! R R4      t ! R R]4      tR# )    N)Anyi   c                       ] tR t^tRtR# )UnexpectedEOF N)__name__
__module____qualname____firstlineno____static_attributes__r       jC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO\maestro-backend\venv\Lib\site-packages\dns/quic/_common.pyr   r      s    r   r   c                   D   a  ] tR t^t o R tR tR tR tR tR t	Rt
V tR# )	Bufferc                "    R V n         RV n        R# )r   FN_buffer	_seen_endselfs   &r   __init__Buffer.__init__   s    r   c                    V P                   '       d   R # V ;P                  V,          un        V'       d
   RV n         R # R # )NT)r   r   r   datais_ends   &&&r   put
Buffer.put#   s+    >>>!DN r   c                n    \        V P                  4      V8  d   R # V P                  '       d   \        hR# )TF)lenr   r   r   )r   amounts   &&r   haveBuffer.have*   s(    t||&>>>r   c                    V P                   # N)r   r   s   &r   seen_endBuffer.seen_end1       ~~r   c                ~    V P                  V4      '       g   Q hV P                  R V pV P                  VR  V n        V# r$   )r!   r   )r   r    r   s   && r   get
Buffer.get4   s>    yy    ||GV$||FG,r   c                \    V P                  4       '       g   Q hV P                  pR V n        V# )r   )r%   r   )r   r   s   & r   get_allBuffer.get_all:   s'    }}||r   r   N)r   r   r	   r
   r   r   r!   r%   r)   r,   r   __classdictcell____classdict__s   @r   r   r      s(     " r   r   c                   `   a  ] tR t^At o R tR tR tR tR tR t	RR lt
R tR	 tR
 tRtV tR# )BaseQuicStreamc                f    Wn         W n        \        4       V n        ^ V n        RV n        RV n        R# r   N)_connection
_stream_idr   r   
_expecting_headers	_trailers)r   
connection	stream_ids   &&&r   r   BaseQuicStream.__init__B   s+    %#xr   c                    V P                   # r$   )r6   r   s   &r   idBaseQuicStream.idJ   s    r   c                    V P                   # r$   )r8   r   s   &r   headersBaseQuicStream.headersM   s    }}r   c                    V P                   # r$   )r9   r   s   &r   trailersBaseQuicStream.trailersP   r'   r   c                N    Ve   \         P                   ! 4       V,           pV# R pV# r$   )time)r   timeout
expirations   && r   _expiration_from_timeout'BaseQuicStream._expiration_from_timeoutS   s-    w.J  Jr   c                b    Ve)   \        V\        P                  ! 4       ,
          R4      pV# R pV# )Ng        )maxrG   )r   rI   rH   s   && r   _timeout_from_expiration'BaseQuicStream._timeout_from_expirationZ   s2    !*tyy{2C8G  Gr   c           	        V P                   P                  4       '       g   \        R 4      h\        P                  P                  V4      pVP                  P                  4       pV'       d   RpM5RpVR\        P                  ! V4      P                  R4      ,           ,          pRV3RVP                  P                  4       3RVP                  P                  4       3RV3R.pV'       d6   VP                  RR	\        \        V4      4      P                  4       3.4       V P                   P!                  V P"                  Ws'       * 4       V'       d*   V P                   P%                  V P"                  VR
4       R# R# )z%cannot send H3 to a non-H3 connections   POSTs   GETs   ?dns=   =s   :methods   :schemes
   :authoritys   :paths   content-lengthTN)s   accept   application/dns-message)s   content-typerR   )r5   is_h3SyntaxErrorurllibparseurlparsepathencodebase64urlsafe_b64encoderstripschemenetlocextendstrr   send_headersr6   	send_data)r   urldatagrampost	url_partsrX   methodrA   s   &&&&    r   send_h3BaseQuicStream.send_h3g   s8   %%''EFFLL))#.	~~$$&FFHv77AHHNNND ))0023I,,3356t3
 NNA&CM(:(A(A(CD 	%%doowI&&t$G r   c                    V P                   P                  4       '       d   V# \        V4      p\        P                  ! R V4      V,           # )z!H)r5   rS   r   structpack)r   rd   ls   && r   _encapsulateBaseQuicStream._encapsulate   s;    !!##OM{{4#h..r   c                   V P                   P                  W4        V P                  ^ 8  ;'       d.    V P                   P                  V P                  4      ;'       g    V P                   P                  #   \
         d     R# i ; i)r   T)r   r   r7   r!   r%   r   r   s   &&&r   _common_add_input BaseQuicStream._common_add_input   sp    &	!#JJ(9(9$//(J' '&&'  		s   A7 ,A7  A7 7BBc                    V P                   P                  V P                  4       V P                  P	                  R R4       R# )r   TN)r5   close_streamr6   r   r   r   s   &r   _closeBaseQuicStream._close   s.    %%doo6d#r   )r   r5   r7   r8   r6   r9   NT)r   r   r	   r
   r   r>   rA   rD   rJ   rN   rh   rn   rq   ru   r   r.   r/   s   @r   r2   r2   A   s=     H8/$ $r   r2   c                   Z   a  ] tR t^t o R
R ltR tR tRR ltRR ltRR lt	R t
R	tV tR# )BaseQuicConnectionNc                p   R V n         Wn        W n        W0n        R V n        W`n        / V n        VeG   VP                  4       '       d1   \        P                  P                  P                  VR 4      V n        MRV n        \        P                  P                  V4      V n        \        P                  P#                  W#34      V n        VfR   V^ 8w  dK   V P                   \&        P(                  8X  d   RpM(V P                   \&        P*                  8X  d   RpM\,        hV'       d   WE3V n        R# RV n        R# )FNz0.0.0.0z::)_doner5   _address_port_closed_manager_streamsrS   aioquich3r:   H3Connection_h3_conndnsinetaf_for_address_aflow_level_address_tuple_peersocketAF_INETAF_INET6NotImplementedError_source)r   r:   addressportsourcesource_portmanagers   &&&&&&&r   r   BaseQuicConnection.__init__   s     
%
7==??#JJ11>>z5QDM DM88**73XX55woF
>kQ.xx6>>)"V__,))"0DLDLr   c                    V P                   R J# r$   )r   r   s   &r   rS   BaseQuicConnection.is_h3   s    }}D((r   c                     V P                   V R # r$   )r   )r   r;   s   &&r   rt   BaseQuicConnection.close_stream   s    MM)$r   c                ^    V P                   f   Q hV P                   P                  WV4       R # r$   )r   ra   )r   r;   rA   r   s   &&&&r   ra   BaseQuicConnection.send_headers   s&    }}(((""9v>r   c                ^    V P                   f   Q hV P                   P                  WV4       R # r$   )r   rb   )r   r;   r   r   s   &&&&r   rb   BaseQuicConnection.send_data   s&    }}(((	8r   c                    \         P                   ! 4       pV P                  P                  4       pVf
   VR,           p\        W2,
          ^ 4      pV P                  '       d   V'       d   \        VR4      pW43# )Ni  g?)rG   r5   	get_timerrM   r~   min)r   closed_is_specialnowrI   intervals   &&   r   _get_timer_values$BaseQuicConnection._get_timer_values   sb    iik%%//1
tJz'+<<<- 8T*H%%r   c                v    \         P                   ! 4       pW8:  d   V P                  P                  V4       R # R # r$   )rG   r5   handle_timer)r   rI   r   s   && r   _handle_timer BaseQuicConnection._handle_timer   s,    iik))#. r   )r|   r   r~   r5   r{   r   r   r   r}   r   r   )Nr   N)Frw   )r   r   r	   r
   r   rS   rt   ra   rb   r   r   r   r.   r/   s   @r   ry   ry      s.       D)%?9&/ /r   ry   c                   6   a  ] tR t^t o RV 3R lR lltRtV tR# )AsyncQuicConnectionNc                4   < V ^8  d   QhRS[ R,          RS[/# )   rH   Nreturn)floatr   )formatr0   s   "r   __annotate__ AsyncQuicConnection.__annotate__   s        r   c                   "   R # 5ir$   r   )r   rH   s   &&r   make_streamAsyncQuicConnection.make_stream   s     s   r   r$   )r   r   r	   r
   r   r   r.   r/   s   @r   r   r      s       r   r   c                   L   a  ] tR t^t o R	R ltR
R ltR tR tR tR t	Rt
V tR# )BaseQuicManagerNc                z   / V n         W0n        / V n        / V n        WPn        Vf   R p\        V\        4      '       d   TpRpV'       d   R.pMRR.p\        P                  P                  P                  VVVR7      pVe4   \        P                  P                  V4      w  rVP                  WR7       Wn        R # )NTr   doqzdoq-i03)alpn_protocolsverify_modeserver_name)cafilecapath)_connections_connection_factory_session_tickets_tokens_h3
isinstancer`   r   quicconfigurationQuicConfigurationr   	_tls_util#convert_verify_to_cafile_and_capathload_verify_locations_conf)
r   confr   connection_factoryr   r   verify_pathr   r   r   s
   &&&&&&    r   r   BaseQuicManager.__init__   s     #5  "<K+s++)""&"'!3<<--??-'' @ D
 &!$!R!R" **&*H
r   c                j   V P                   P                  W34      pVe   VR3# V P                  pV'       d\    V P                  P	                  W34      p	\
        P
                  ! V4      pWn        \        P                  ! V P                  W4      p
MR p
V'       d\    V P                  P	                  W34      p\
        P
                  ! V4      pWn        \        P                  ! V P                  W4      pMR p\        P                  P                   P#                  VV
VR7      p\$        P&                  P)                  W34      pVP+                  V\,        P,                  ! 4       4       V P/                  WW#W@4      pWpP                   W3&   VR3#   \         d     EL.i ; i  \         d     Li ; i)NF)r   session_ticket_handlertoken_handlerT)r   r)   r   r   popcopysession_ticketKeyError	functoolspartialsave_session_ticketr   token
save_tokenr   r   r:   QuicConnectionr   r   r   connectrG   r   )r   r   r   r   r   want_session_ticket
want_tokenr:   r   r   r   r   r   qconn	lladdresss   &&&&&&&        r   _connectBaseQuicManager._connect   s    &&**G?;
!&&zz!%!6!6!:!:G?!Kyy&4# &/%6%6(('&" &*"(('9yy"

 &--doowMM M''66#9' 7 

 HH44g_E	i---D+

 .87/*D!!G     s#   8F 8F$ F! F!$F21F2c                H     V P                   W3 R #   \         d     R # i ; ir$   )r   r   )r   r   r   s   &&&r   closedBaseQuicManager.closed6  s)    	!!7/2 		s    !!c                    V P                   # r$   )r   r   s   &r   rS   BaseQuicManager.is_h3<  s    xxr   c                    \        V P                  4      pV\        8  dA   \        V P                  P	                  4       4      ^ \
         pV F  pV P                  V K  	  W0P                  W3&   R# r4   )r   r   MAX_SESSION_TICKETSlistkeysSESSIONS_TO_DELETE)r   r   r   ticketrm   keys_to_deletekeys   &&&&   r   r   #BaseQuicManager.save_session_ticket?  sf     %%&##!$"7"7"<"<">?BTUN%))#. &17wo.r   c                    \        V P                  4      pV\        8  dA   \        V P                  P	                  4       4      ^ \
         pV F  pV P                  V K  	  W0P                  W3&   R# r4   )r   r   r   r   r   r   )r   r   r   r   rm   r   r   s   &&&&   r   r   BaseQuicManager.save_tokenJ  s^     ##!$,,"3"3"56q9KLN%LL% &(-g_%r   )r   r   r   r   r   r   )NF)U  Nr   TT)r   r   r	   r
   r   r   r   rS   r   r   r   r.   r/   s   @r   r   r      s)     :6"p	8	. 	.r   r   c                   *   a  ] tR tRt o RR ltRtV tR# )AsyncQuicManageriV  Nc                    \         hr$   )r   )r   r   r   r   r   s   &&&&&r   r   AsyncQuicManager.connectW  s    !!r   r   )r   Nr   )r   r   r	   r
   r   r   r.   r/   s   @r   r   r   V  s     " "r   r   )rZ   r   r   r   rk   rG   urllib.parserU   typingr   aioquic.h3.connectionr   aioquic.quic.configurationaioquic.quic.connectiondns._tls_utilr   dns.inetQUIC_MAX_DATAGRAMr   r   	Exceptionr   r   r2   ry   r   r   r   r   r   r   <module>r     s             !      )A- 	I 	   FS$ S$lA/ A/H, 
s. s.l" "r   