ó
    0/¡jI~  ã            #       óf  • S r SSKrSSK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
JrJrJr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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J r J!r!J"r"J#r#J$r$J%r%J&r&J'r'   SSK(r(\&(       a  SSK,r,\RZ                  R\                  r/S r0SFS jr1 SFS\Rd                  Rf                  S	\Rh                  Rj                  \6-  S
\
S\7S-  S\\8\74   4
S jjr9          SGS\Rd                  Rf                  S
\
S-  S\7S-  S\:S\:S\\Rv                  Rx                  \Rz                  R|                  4   S-  S\6S-  S\:S\:S\:S\Rh                  Rj                  S-  S\
4S jjr?           SHS\Rh                  Rj                  S\@S\7S-  S\8S\@S-  S\8S\:S\:S\:S\:S\Rd                  Rf                  S-  S\Rd                  R‚                  S-  S\:S\Rh                  Rj                  4S  jjrB           SIS\Rh                  Rj                  S\@S\7S-  S\8S\@S-  S\8S\:S\:S\:S!\Rd                  Rf                  S-  S"\Rd                  R†                  S-  S\Rd                  R‚                  S-  S\:S\\Rh                  Rj                  \:4   4S# jjrD SFS\Rd                  R†                  S	\Rh                  Rj                  \6-  S\7S-  S\\8\74   4S$ jjrES% rF     SJS\Rd                  R†                  S\7S-  S\:S\\Rv                  Rx                  \Rz                  R|                  4   S-  S\6S-  S\:S\\Rh                  Rj                  \74   4S& jjrG        SKS\Rh                  Rj                  S\@S\7S-  S\8S\@S-  S\8S\:S\:S\Rd                  R†                  S-  S\Rd                  R‚                  S-  S\Rh                  Rj                  4S' jjrH           SLS\Rh                  Rj                  S\@S\7S-  S\8S\@S-  S\8S\:S\:S\Rd                  R†                  S-  S\Rd                  R‚                  S-  S)\(R’                  S-  S*\@S-  S+\:\@-  S\Rh                  Rj                  4S, jjrJS-\S.   SS.4S/ jrKSS0SSSSSS1S(S(SS\R˜                  \Rš                  4S\Rh                  Rj                  S\@S\7S-  S\8S\@S-  S\8S\:S\:S2\S3   S4\@S5\:S+\:\@-  \(R’                  -  S6\@S-  S-\S.   S7\8S8\S\Rh                  Rj                  4"S9 jjrN          SMS\Rh                  Rj                  S\@S:\@S\7S-  S\8S\@S-  S\8S\:S\:S+\:\@-  \(R’                  -  S\Rd                  R‚                  S-  S5\:S;\Rž                  R                   S-  S\Rh                  Rj                  4S< jjrQ           SNS\Rh                  Rj                  S\@S\7S-  S\8S\@S-  S\8S\:S\:S;\Rž                  R                   S-  S+\:\@-  S\Rd                  R‚                  S-  S=\@S-  S*\@S-  S\Rh                  Rj                  4S> jjrOS?\R¤                  R¦                  S@\Rd                  R¨                  S\Rh                  Rj                  SA\8S-  S\7S-  S\7S\
4SB jrUSSSSSS\!R¬                  S4S\@S?\R¤                  R¦                  S\Rh                  Rj                  S-  S\8S\7S-  SC\7S-  S\@S-  S\8SD\!S\Rd                  R‚                  S-  SS4SE jjrWg! \) a
    SSK*J+r(   GNµf = f)OzTalk to a DNS server.é    N)ÚAnyÚDictÚOptionalÚTupleÚcast)ÚNullContext)ÚBadResponseÚHTTPVersionÚNoDOHÚNoDOQÚUDPModeÚ_check_statusÚ_compute_timesÚ_matches_destinationÚ
_remainingÚhave_dohÚmake_ssl_contextc                 ó¬   • U(       d  U(       aF  Uc@  U [         R                  :X  a  SnX4$ U [         R                  :X  a  SnX4$ [        SU  35      eX4$ g )Nz0.0.0.0z::zunknown address family )ÚsocketÚAF_INETÚAF_INET6ÚNotImplementedError)ÚafÚaddressÚports      Úg/var/www/html/health-monitoring.indevconsultancy.in/venv/lib/python3.13/site-packages/dns/asyncquery.pyÚ_source_tupler   B   sf   € ö –$Ø‰?Ø”V—^‘^Ó#Ø#�ð
 ˆÐð	 ”v—‘Ó&Ø�ð ˆÐô *Ð,CÀBÀ4Ð*HÓIÐIØˆÐàó    c                 ó^   • U b*  U(       d  [         R                   " 5       n[        X-
  S5      $ g ©Nr   )ÚtimeÚmax)Ú
expirationÚnows     r   Ú_timeoutr%   R   s)   € ØÑÞÜ—)’)“+ˆCÜ�:Ñ# QÓ'Ð'àr   ÚsockÚwhatÚdestinationr#   Úreturnc              ƒ   óö   #   • [        U[        R                  R                  5      (       a  UR	                  5       n[
        R
                  " 5       nU R                  X[        X45      5      I Sh  v•N nXT4$  N7f)a^  Send a DNS message to the specified UDP socket.

*sock*, a ``dns.asyncbackend.DatagramSocket``.

*what*, a ``bytes`` or ``dns.message.Message``, the message to send.

*destination*, a destination tuple appropriate for the address family
of the socket, specifying where to send the query.

*expiration*, a ``float`` or ``None``, the absolute time at which
a timeout exception should be raised.  If ``None``, no timeout will
occur.  The expiration value is meaningless for the asyncio backend, as
asyncio's transport sendto() never blocks.

Returns an ``(int, float)`` tuple of bytes sent and the sent time.
N)Ú
isinstanceÚdnsÚmessageÚMessageÚto_wirer!   Úsendtor%   )r&   r'   r(   r#   Ú	sent_timeÚns         r   Úsend_udpr3   [   sZ   é € ô. �$œŸ™×+Ñ+×,Ñ,Ø�|‰|‹~ˆÜ—	’	“€IØ�k‰k˜$¬X°jÓ-LÓM×M€AØˆ>Ðñ 	Nùs   ‚A-A9Á/A7Á0A9FÚignore_unexpectedÚone_rr_per_rrsetÚkeyringÚrequest_macÚignore_trailingÚraise_on_truncationÚignore_errorsÚqueryc           	   ƒ   ó6  #   • Sn U R                  S[        U5      5      I Sh  v•N u  p¼[        U R                  XÁU5      (       d  MD  [        R                  " 5       n [
        R                  R                  UUUUUUS9nU	(       a  U
b  U
R                  U5      (       d  Mž  XíU4$  N‚! [
        R                  R                   a:  nU	(       a-  U
b*  U
R                  UR                  5       5      (       d   SnAMö  e SnAf[         a    U	(       a   GM  e f = f7f)aR  Read a DNS message from a UDP socket.

*sock*, a ``dns.asyncbackend.DatagramSocket``.

See :py:func:`dns.query.receive_udp()` for the documentation of the other
parameters, and exceptions.

Returns a ``(dns.message.Message, float, tuple)`` tuple of the received message, the
received time, and the address where the message arrived from.
r   éÿÿ  N)r6   r7   r5   r8   r9   )Úrecvfromr%   r   Úfamilyr!   r,   r-   Ú	from_wireÚ	TruncatedÚis_responseÚ	Exception)r&   r(   r#   r4   r5   r6   r7   r8   r9   r:   r;   ÚwireÚfrom_addressÚreceived_timeÚrÚes                   r   Úreceive_udprI   y   s  é € ð0 €DØ
Ø%)§]¡]°5¼(À:Ó:NÓ%O×OÑˆÜ#Ø�K‰K˜Ð4E÷
ñ 
ñ ÜŸ	š	›ˆð	Ü—‘×%Ñ%ØØØ'Ø!1Ø /Ø$7ð &ð ˆAö. ˜UÑ.°u×7HÑ7HÈ×7KÑ7KÙØ ,Ð/Ð/ñA  Pøô �{‰{×$Ñ$ó 		ö ØÑ%Ø×)Ñ)¨!¯)©)«+×6Ñ6åàûÜó 	ÞÛàð		üsK   ‚"D¤B'¥9DÁ"B) Â'DÂ)DÃ.C<Ã5DÃ;C<Ã<DÄDÄDÄDé5   ÚqÚwhereÚtimeoutr   ÚsourceÚsource_portÚbackendc              ƒ   ó$  #   • U R                  5       n[        U5      u  pï[        R                  R	                  U5      n[        X4U5      nU
(       a  [        U
5      nOwU(       d  [        R                  R                  5       n[        UXE5      nUR                  5       (       a  X4nOSnUR                  U[        R                  SUU5      I Sh  v•N nU ISh  v•N n[        UUUU5      I Sh  v•N   [        UUUUUU R                   U R"                  UU	UU 5      I Sh  v•N u  nnnUU-
  Ul        U(       d  U R'                  U5      (       d  [(        eUsSSS5      ISh  v•N   $  Nš N‘ N} NN N! , ISh  v•N  (       d  f       g= f7f)a"  Return the response obtained after sending a query via UDP.

*sock*, a ``dns.asyncbackend.DatagramSocket``, or ``None``,
the socket to use for the query.  If ``None``, the default, a
socket is created.  Note that if a socket is provided, the
*source*, *source_port*, and *backend* are ignored.

*backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
the default, then dnspython will use the default backend.

See :py:func:`dns.query.udp()` for the documentation of the other
parameters, exceptions, and return type of this method.
Nr   )r/   r   r,   ÚinetÚaf_for_addressÚ_lltupler   ÚasyncbackendÚget_default_backendr   Údatagram_connection_requiredÚmake_socketr   Ú
SOCK_DGRAMr3   rI   r6   Úmacr!   rB   r	   )rK   rL   rM   r   rN   rO   r4   r5   r8   r9   r&   rP   r:   rD   Ú
begin_timer#   r   r(   ÚcmÚstupleÚdtupleÚsrG   rF   Ú_s                            r   Úudpra   ¶   sV  é € ð8 �9‰9‹;€DÜ-¨gÓ6Ñ€ZÜ	�‰×	 Ñ	  Ó	'€BÜ˜E˜=¨"Ó-€KÞÜ5@ÀÓ5F‰æÜ×&Ñ&×:Ñ:Ó<ˆGÜ˜r 6Ó7ˆØ×/Ñ/×1Ñ1Ø�]‰FàˆFØ×&Ñ& r¬6×+<Ñ+<¸aÀÈÓP×Pˆß‰r�QÜ�q˜$ ¨ZÓ8×8Ð8Ü&1ØØØØØØ�I‰IØ�E‰EØØØØó'
÷ !
ÑˆˆM˜1ð  Ñ+ˆŒö  §¡¨q×!1Ñ!1ÜÐØ÷) �r‰rñ QÙÙ8ñ!
÷ �r�rˆrüs~   ‚CFÃE,Ã
FÃE.ÃFÃ E6Ã2E0Ã30E6Ä#E2Ä$6E6ÅFÅ&E4Å'FÅ.FÅ0E6Å2E6Å4FÅ6FÅ<E?Å=FÆ	FÚudp_sockÚtcp_sockc              ƒ   óà   #   •  [        U UUUUUUUUSU	UU5      I Sh  v•N nUS4$  N! [        R                  R                   a$    [	        U UUUUUUUU
U5
      I Sh  v•N  nUS4s $ f = f7f)a‡  Return the response to the query, trying UDP first and falling back
to TCP if UDP results in a truncated response.

*udp_sock*, a ``dns.asyncbackend.DatagramSocket``, or ``None``,
the socket to use for the UDP query.  If ``None``, the default, a
socket is created.  Note that if a socket is provided the *source*,
*source_port*, and *backend* are ignored for the UDP query.

*tcp_sock*, a ``dns.asyncbackend.StreamSocket``, or ``None``, the
socket to use for the TCP query.  If ``None``, the default, a
socket is created.  Note that if a socket is provided *where*,
*source*, *source_port*, and *backend*  are ignored for the TCP query.

*backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
the default, then dnspython will use the default backend.

See :py:func:`dns.query.udp_with_fallback()` for the documentation
of the other parameters, exceptions, and return type of this
method.
TNF)ra   r,   r-   rA   Útcp)rK   rL   rM   r   rN   rO   r4   r5   r8   rb   rc   rP   r:   Úresponses                 r   Úudp_with_fallbackrg   ø   s¬   é € ðF ÜØØØØØØØØØØØØØó
÷ 
ˆð ˜%Ð Ð ñ
øô  �;‰;× Ñ ó  ÜØØØØØØØØØØó
÷ 
ð 
ˆð ˜$ÐÒð üs=   ‚A.„) ž'Ÿ) ¦A.§) ©5A+ÁA!Á	A+Á(A.Á*A+Á+A.c              ƒ   óF  #   • [        U[        R                  R                  5      (       a  UR	                  SS9nO[        U5      R                  SS5      U-   n[        R                  " 5       nU R                  U[        X$5      5      I Sh  v•N   [        U5      U4$  N7f)zÞSend a DNS message to the specified TCP socket.

*sock*, a ``dns.asyncbackend.StreamSocket``.

See :py:func:`dns.query.send_tcp()` for the documentation of the other
parameters, exceptions, and return type of this method.
T)Úprepend_lengthé   ÚbigN)
r+   r,   r-   r.   r/   ÚlenÚto_bytesr!   Úsendallr%   )r&   r'   r#   Útcpmsgr1   s        r   Úsend_tcprp   <  s„   é € ô �$œŸ™×+Ñ+×,Ñ,Ø—‘¨T�Ð2‰ô
 �T“×#Ñ# A uÓ-°Ñ4ˆÜ—	’	“€IØ
�,‰,�vœx¨
Ó>Ó
?×?Ð?Ü�‹K˜Ð#Ð#ñ @ùs   ‚BB!ÂBÂB!c              ƒ   ó¾   #   • SnUS:”  aN  U R                  U[        U5      5      I Sh  v•N nUS:X  a  [        S5      eU[        U5      -
  nX4-   nUS:”  a  MN  U$  N17f)ztRead the specified number of bytes from stream.  Keep trying until we
either get the desired amount, or we hit EOF.
r   r   NÚEOF)Úrecvr%   ÚEOFErrorrl   )r&   Úcountr#   r_   r2   s        r   Ú_read_exactlyrv   U  se   é € ð 	€AØ
�!‹)Ø—)‘)˜E¤8¨JÓ#7Ó8×8ˆØ�‹8Ü˜5“/Ð!Øœ˜A›‘ˆØ‰Eˆð �!�)ð €Hñ 9ùs   ‚'A©Aª-AÁAc              ƒ   ó  #   • [        U SU5      I Sh  v•N n[        R                  " SU5      u  n[        XU5      I Sh  v•N n[        R                  " 5       n	[        R
                  R                  UUUUUS9n
X©4$  Nj N?7f)z×Read a DNS message from a TCP socket.

*sock*, a ``dns.asyncbackend.StreamSocket``.

See :py:func:`dns.query.receive_tcp()` for the documentation of the other
parameters, exceptions, and return type of this method.
rj   Nú!H©r6   r7   r5   r8   )rv   ÚstructÚunpackr!   r,   r-   r@   )r&   r#   r5   r6   r7   r8   ÚldataÚlrD   rF   rG   s              r   Úreceive_tcpr~   c  s   é € ô     a¨Ó4×4€EÜ�=Š=˜˜uÓ%�D€QÜ˜t¨
Ó3×3€DÜ—I’I“K€MÜ�‰×ÑØØØØ)Ø'ð 	ð 	€Að ÐÐñ 5á3ùs!   ‚B“A>”,BÁ B Á>BÂ Bc
           	   ƒ   óô  #   • U R                  5       n
[        U5      u  p¼U(       a$  UR                  5       I Sh  v•N   [        U5      nO[        R
                  R                  U5      n[        XäU5      nX4nU	(       d  [        R                  R                  5       n	U	R                  U[        R                  SUUU5      I Sh  v•N nU ISh  v•N n[        UX¬5      I Sh  v•N   [        UUUU R                  U R                   U5      I Sh  v•N u  nnUU-
  Ul        U R%                  U5      (       d  [&        eUsSSS5      ISh  v•N   $  GN NŽ N… Ns NI N! , ISh  v•N  (       d  f       g= f7f)a+  Return the response obtained after sending a query via TCP.

*sock*, a ``dns.asyncbacket.StreamSocket``, or ``None``, the
socket to use for the query.  If ``None``, the default, a socket
is created.  Note that if a socket is provided
*where*, *port*, *source*, *source_port*, and *backend* are ignored.

*backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
the default, then dnspython will use the default backend.

See :py:func:`dns.query.tcp()` for the documentation of the other
parameters, exceptions, and return type of this method.
Nr   )r/   r   Úgetpeernamer   r,   rR   rS   r   rU   rV   rX   r   ÚSOCK_STREAMrp   r~   r6   rZ   r!   rB   r	   )rK   rL   rM   r   rN   rO   r5   r8   r&   rP   rD   r[   r#   r\   r   r]   r^   r_   rG   rF   s                       r   re   re   �  s@  é € ð4 �9‰9‹;€DÜ-¨gÓ6Ñ€ZÞð ×ÑÓ × Ð Ü5@ÀÓ5F‰ô �X‰X×$Ñ$ UÓ+ˆÜ˜r¨;Ó7ˆØ�ˆÞÜ×&Ñ&×:Ñ:Ó<ˆGØ×&Ñ&Ø”×"Ñ" A v¨v°wó
÷ 
ˆ÷ ‰r�QÜ�q˜$Ó+×+Ð+Ü#.ØØØØ�I‰IØ�E‰EØó$
÷ 
ÑˆˆMð  Ñ+ˆŒØ�}‰}˜Q×ÑÜÐØ÷ �r‰rò 	!ñ
ñ Ù+ñ
÷ �r�rˆrüsŽ   ‚8E8ºE»B
E8ÃEÃ
E8ÃEÃE8ÃEÃ$EÃ%+EÄEÄ.EÄ?E8ÅEÅE8ÅE8ÅE8ÅEÅEÅE8ÅE5Å$E'Å%E5Å1E8TÚssl_contextÚserver_hostnameÚverifyc              ƒ   ó|  #   • [        U5      u  pÞU(       a  [        U5      nO“U
c  [        XËSLS/5      n
[        R                  R                  U5      n[        UXE5      nX4nU	(       d  [        R                  R                  5       n	U	R                  U[        R                  SUUUU
U5      I Sh  v•N nU ISh  v•N n[        U5      n[        U UUUUUUUUU	5
      I Sh  v•N n[        R                  " 5       nUU-
  Ul        UsSSS5      ISh  v•N   $  Nh N_ N: N! , ISh  v•N  (       d  f       g= f7f)az  Return the response obtained after sending a query via TLS.

*sock*, an ``asyncbackend.StreamSocket``, or ``None``, the socket
to use for the query.  If ``None``, the default, a socket is
created.  Note that if a socket is provided, it must be a
connected SSL stream socket, and *where*, *port*,
*source*, *source_port*, *backend*, *ssl_context*, and *server_hostname*
are ignored.

*backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
the default, then dnspython will use the default backend.

See :py:func:`dns.query.tls()` for the documentation of the other
parameters, exceptions, and return type of this method.
NÚdotr   )r   r   r   r,   rR   rS   r   rU   rV   rX   r   r�   r%   re   r!   )rK   rL   rM   r   rN   rO   r5   r8   r&   rP   r‚   rƒ   r„   r[   r#   r\   r   r]   r^   r_   rf   Úend_times                         r   Útlsrˆ   ¾  s,  é € ô<  .¨gÓ6Ñ€ZÞÜ5@ÀÓ5F‰àÑÜ*¨6È$Ð3NÐQVÐPWÓXˆKÜ�X‰X×$Ñ$ UÓ+ˆÜ˜r 6Ó7ˆØ�ˆÞÜ×&Ñ&×:Ñ:Ó<ˆGØ×&Ñ&ØÜ×ÑØØØØØØó	
÷ 	
ˆ÷ ‰r�QÜ˜:Ó&ˆÜØØØØØØØØØØó
÷ 
ˆô —9’9“;ˆØ  :Ñ-ˆŒØ÷! �r‰rñ	
ñ ñ
÷ �r�rˆrüsl   ‚B/D<Â1DÂ2
D<Â<DÂ=D<Ã #D"Ã#DÃ$$D"ÄD<ÄD ÄD<ÄD<ÄD"Ä D<Ä"D9Ä(D+Ä)D9Ä5D<Úresolverzdns.asyncresolver.Resolverc                 óH   • U c  SS K nUR                  R                  5       n U $ r    )Údns.asyncresolverÚasyncresolverÚResolver)r‰   r,   s     r   Ú_maybe_get_resolverrŽ     s&   € ð Ñã à×$Ñ$×-Ñ-Ó/ˆØ€Or   é»  z
/dns-queryÚclientz.httpx.AsyncClient|dns.quic.AsyncQuicConnectionÚpathÚpostÚbootstrap_addressr?   Úhttp_versionc              ƒ   ó^
  #   •  [         R                  R                  U5      nUnUba  [         R                  R	                  U5      (       a=  U[
        R                  :X  a  SU SU U	 3nOU[
        R                  :X  a
  SU SU U	 3n0 nUc™  [        R                  R                  U5      nUR                  c  [        S5      e[         R                  R	                  UR                  5      (       a  UR                  nUR                  US'   UR                  b  UR                  nU[        R                  :X  d  U[        R                  :X  aþ  [         (       dó  Uck  [#        U5      nWR                  c   eUR%                  UR                  U5      I Sh  v•N n[&        R(                  " [+        UR-                  5       5      5      nU(       a4  [/        U[         R0                  R2                  5      (       d  [        S5      eUb+  [/        U[         R0                  R2                  5      (       d   e[5        U UUUUUUUUUU
US	9I Sh  v•N $ [         (       d  [6        eU(       a*  [/        U[8        R:                  5      (       d  [        S
5      eU R=                  5       nSS0nU[        R>                  [        R                  4;   nU[        R@                  [        R                  4;   n[         RB                  RE                  5       nUc  SnSnOUnUnU(       a  [G        U5      nO2URI                  5       " UUUUUUUUS9n[8        R:                  " UUUUS9nU ISh  v•N nU
(       aQ  URK                  S[M        [O        U5      5      S.5        URQ                  URS                  UUUUS9U5      I Sh  v•N nOa[T        RV                  " U5      RY                  S5      nUR[                  5       n URQ                  UR]                  UUSU 0US9U5      I Sh  v•N nSSS5      ISh  v•N   WR^                  S:  d  UR^                  S:”  a(  [        U SUR^                   SUR`                  < 35      e[         Rb                  Re                  UR`                  U Rf                  U Rh                  UUS9n!URj                  Rm                  5       U!l7        U Rq                  U!5      (       d  [r        eU!$ ! [         a    Sn GNÜf = f GNm GN¾ GN« GNW N÷ Né! , ISh  v•N  (       d  f       Nþ= f7f)a§  Return the response obtained after sending a query via DNS-over-HTTPS.

*client*, a ``httpx.AsyncClient``.  If provided, the client to use for
the query.

Unlike the other dnspython async functions, a backend cannot be provided
in this function because httpx always auto-detects the async backend.

See :py:func:`dns.query.https()` for the documentation of the other
parameters, exceptions, and return type of this method.
Nzhttps://Ú:z	https://[z]:zno hostname in URLÚsni_hostnamez8client parameter must be a dns.quic.AsyncQuicConnection.)r„   r’   Ú
connectionz-client parameter must be an httpx.AsyncClientÚacceptzapplication/dns-messager   )Úlocal_addressÚhttp1Úhttp2r„   Ú
local_portr“   r‰   r?   )r›   rœ   r„   Ú	transport)zcontent-typezcontent-length)ÚheadersÚcontentÚ
extensionsó   =r,   )rŸ   Úparamsr¡   éÈ   i+  z responded with status code z
Response body: ry   ):r,   rR   rS   Ú
ValueErrorÚ
is_addressr   r   r   ÚurllibÚparseÚurlparseÚhostnamer   r
   ÚH3ÚDEFAULTr   rŽ   Úresolve_nameÚrandomÚchoiceÚlistÚ	addressesr+   ÚquicÚAsyncQuicConnectionÚ_http3r   ÚhttpxÚAsyncClientr/   ÚH1ÚH2rU   rV   r   Úget_transport_classÚupdateÚstrrl   Úwait_forr’   Úbase64Úurlsafe_b64encodeÚrstripÚdecodeÚgetÚstatus_coder    r-   r@   r6   r7   ÚelapsedÚtotal_secondsr!   rB   r	   )"rK   rL   rM   r   rN   rO   r5   r8   r�   r‘   r’   r„   r“   r‰   r?   r”   r   Úurlr¡   ÚparsedÚanswersrD   rŸ   Úh1Úh2rP   rš   r�   r\   rž   Ú
the_clientrf   ÚtwirerG   s"                                     r   ÚhttpsrÌ     s·  é € ð<Ü�X‰X×$Ñ$ UÓ+ˆð €CØ	�~œ#Ÿ(™(×-Ñ-¨e×4Ñ4Ø”—‘ÓØ˜U˜G 1 T F¨4¨&Ð1‰CØ”6—?‘?Ó"Ø˜e˜W B t f¨T¨FÐ3ˆCà€JØÑ ä—‘×&Ñ& sÓ+ˆØ�?‰?Ñ"ÜÐ1Ó2Ð2Ü�8‰8×Ñ˜vŸ™×/Ñ/Ø &§¡ÐØ)/¯©ˆJ�~Ñ&Ø�;‰;Ñ"Ø—;‘;ˆDà”{—~‘~Ó%Øœ×+Ñ+Ó+·H²HàÑ$Ü*¨8Ó4ˆHØ—?‘?Ñ.Ð.Ð.Ø$×1Ñ1Ø—‘ ó÷ ˆGô !'§¢¬d°7×3DÑ3DÓ3FÓ.GÓ HÐÞœ*Ø”C—H‘H×0Ñ0÷
ñ 
ô ÐWÓXÐXØ‰~¤¨F´C·H±H×4PÑ4P×!QÑ!QÐQÐQÜØØØØØØØØØØØØñ
÷ 
ð 	
÷ Š8Üˆæ”j ¬×):Ñ):×;Ñ;ÜÐHÓIÐIð �9‰9‹;€DØÐ2Ð3€Gà	œ+Ÿ.™.¬+×*=Ñ*=Ð>Ñ	>€BØ	œ+Ÿ.™.¬+×*=Ñ*=Ð>Ñ	>€Bä×Ñ×2Ñ2Ó4€Gà�~ØˆØ‰
àˆØ ˆ
æÜ5@ÀÓ5H‰à×/Ñ/Ô1Ø'ØØØØ!Ø/ØØñ	
ˆ	ô ×ÒØ˜B v¸ñ
ˆ÷ ‰r�Zö Ø�N‰Nà$=Ü&)¬#¨d«)£nñôð %×-Ñ-Ø—‘ØØ#Ø Ø)ð	  ð ð ó÷ ‰Hô ×+Ò+¨DÓ1×8Ñ8¸Ó>ˆDØ—K‘K“MˆEØ$×-Ñ-Ø—‘ØØ#Ø! 5˜>Ø)ð	 ð ð ó÷ ˆH÷- �rðD ×Ñ˜cÓ! X×%9Ñ%9¸CÓ%?ÜØˆgÐ1°(×2FÑ2FÐ1GØ × 0Ñ 0Ñ3ð5ó
ð 	
ô 	�‰×ÑØ×ÑØ—	‘	Ø—M‘MØ)Ø'ð 	ð 	€Að ×Ñ×+Ñ+Ó-€A„FØ�=‰=˜×ÑÜÐØ€Høô[ ó Ø‹ðúò8ò
òn òñ÷- �r�rˆrüs·   ‚T-„S0 £E3T-ÆTÆB1T-ÉTÉ	DT-ÍT	ÍT-Í"ATÎ5TÎ6A!TÐTÐTÐT-Ð'TÐ(CT-Ó0T Ó<T-Ó?T Ô T-ÔT-Ô	T-ÔTÔTÔT-ÔT*ÔTÔT*Ô&T-rÅ   r˜   c           	   ƒ   óp  #   • [         R                  R                  (       d  [        S5      e[        R
                  R                  U5      nUR                  nUc   eUR                  b  UR                  nSU l	        U R                  5       nU(       a5  [         R                  R                  n[         R                  R                  nO"[         R                  R                  U
5      u  nnU" 5        IS h  v•N nU" UXžSS9 IS h  v•N nU(       a  UnOUR                  XXV5      n[        U5      u  nnUR                  U5      I S h  v•N nU IS h  v•N   UR!                  X/U5        UR#                  [%        U5      5      I S h  v•N n['        UR)                  5       X5        S S S 5      IS h  v•N   [*        R*                  " 5       nS S S 5      IS h  v•N   [         R,                  R/                  UU R0                  U R2                  UUS9nS S S 5      IS h  v•N   [5        WW-
  S5      Wl        U R7                  U5      (       d  [8        eU$  GN^ GNP GN GN NÖ N®! , IS h  v•N  (       d  f       NÃ= f N¥! , IS h  v•N  (       d  f       Nº= f N|! , IS h  v•N  (       d  f       N‘= f7f)Nz DNS-over-HTTP3 is not available.r   T)Úverify_modeÚserver_nameÚh3ry   ç        )r,   r²   Ú	have_quicr   r§   r¨   r©   rª   r   Úidr/   Únull_factoryÚfactories_for_backendÚconnectr   Úmake_streamÚsend_h3Úreceiver   r   rŸ   r!   r-   r@   r6   r7   r"   rB   r	   )rK   rL   rÅ   rM   r   rN   rO   r5   r8   r„   rP   r’   r˜   Ú	url_partsrª   rD   ÚcfactoryÚmfactoryÚcontextÚthe_managerÚthe_connectionÚstartr#   ÚstreamÚfinishrG   s                             r   r´   r´   Â  s  é € ô �8‰8××ÜÐ6Ó7Ð7ä—‘×%Ñ% cÓ*€IØ×!Ñ!€HØÑÐÐØ‡~�~Ñ!Ø�~‰~ˆà€A„DØ�9‰9‹;€DæÜ—8‘8×(Ñ(ˆÜ—8‘8×(Ñ(‰ä"Ÿx™x×=Ñ=¸gÓFÑˆ�8á�zŒz˜WÙØ À$÷
ò 
àÞØ!+‘à!,×!4Ñ!4Ø ó"�ô #1°Ó"9ÑˆU�JØ)×5Ñ5°gÓ>×>ˆFß’và—‘˜s¨$Ô/Ø#Ÿ^™^¬J°zÓ,BÓC×C�Ü˜fŸn™nÓ.°Ô<÷	 —vô
 —Y’Y“[ˆF÷!
÷ 
ô" �K‰K×!Ñ!ØØ—I‘IØŸ™Ø-Ø+ð "ð 
ˆ÷% �zô2 �˜%‘ Ó%€A„FØ�=‰=˜×ÑÜÐØ€Hò9 ò
ò ?Úñ D÷ —v—v�vú÷
÷ 
÷ 
ð 
ú÷ �z�zˆzüsü   ‚C4J6Ã6IÃ7J6Ã:JÄIÄJÄ?J Å
IÅ
J ÅI
ÅJ Å0I$Æ	I 
Æ
I$Æ(J Æ3I"Æ4J ÇJÇI>Ç9JÈJ6ÈJÈ7J6ÉJÉJ ÉJ É I$É"J É$I;É*I-É+I;É7J É>JÊ J	ÊJ	ÊJ	ÊJÊJ6ÊJ3Ê"J%Ê#J3Ê/J6rª   c           	   ƒ   óÆ  #   • [         R                  R                  (       d  [        S5      eUb  Uc  UnSU l        U R                  5       nU(       a7  [         R                  R                  n[         R                  R                  nUnO![         R                  R                  U
5      u  pïU" 5        ISh  v•N nU" UU	US9 ISh  v•N nU(       d  UR                  XXE5      n[        U5      u  nnWR                  U5      I Sh  v•N nU ISh  v•N   UR                  US5      I Sh  v•N   UR                  [        U5      5      I Sh  v•N nSSS5      ISh  v•N   [        R                  " 5       nSSS5      ISh  v•N   [         R                  R!                  UU R"                  U R$                  UUS9nSSS5      ISh  v•N   ['        WW-
  S5      Wl        U R)                  U5      (       d  [*        eU$  GNI GN; Ný Nô NÜ N¼ N®! , ISh  v•N  (       d  f       NÃ= f N¥! , ISh  v•N  (       d  f       Nº= f N|! , ISh  v•N  (       d  f       N‘= f7f)aQ  Return the response obtained after sending an asynchronous query via
DNS-over-QUIC.

*backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
the default, then dnspython will use the default backend.

See :py:func:`dns.query.quic()` for the documentation of the other
parameters, exceptions, and return type of this method.
zDNS-over-QUIC is not available.Nr   )rÎ   rÏ   Try   rÑ   )r,   r²   rÒ   r   rÓ   r/   rÔ   rÕ   rÖ   r   r×   ÚsendrÙ   r   r!   r-   r@   r6   r7   r"   rB   r	   )rK   rL   rM   r   rN   rO   r5   r8   r˜   r„   rP   rª   rƒ   rD   rÛ   rÜ   rß   rÝ   rÞ   rà   r#   rá   râ   rG   s                           r   r²   r²     s×  é € ô2 �8‰8××ÜÐ5Ó6Ð6àÑ" xÑ'7Ø"ˆà€A„DØ�9‰9‹;€DæÜ—8‘8×(Ñ(ˆÜ—8‘8×(Ñ(ˆØ#‰ä"Ÿx™x×=Ñ=¸gÓFÑˆá�zŒz˜WÙØØØ'÷
ò 
ð ÞØ!,×!4Ñ!4Ø ó"�ô #1°Ó"9ÑˆU�JØ)×5Ñ5°gÓ>×>ˆFß’vØ—k‘k $¨Ó-×-Ð-Ø#Ÿ^™^¬J°zÓ,BÓC×C�÷ —vô —Y’Y“[ˆF÷
÷ 
ô �K‰K×!Ñ!ØØ—I‘IØŸ™Ø-Ø+ð "ð 
ˆ÷! �zô. �˜%‘ Ó%€A„FØ�=‰=˜×ÑÜÐØ€Hò5 ò
ñ ?ÙÙ-ÙC÷ —v—v�vú÷
÷ 
÷ 
ð 
ú÷ �z�zˆzüs  ‚B4I!Â6G?Â7I!Â:IÃHÃIÃ<H+ÄHÄ
H+ÄH
ÄH+ÄHÄ,H	
Ä-!HÅH
ÅHÅH+ÅHÅH+Å8IÆH)Æ9IÆ=I!ÇIÇ	7I!ÈIÈH+ÈH+È	HÈHÈH+ÈH&ÈHÈH&È"H+È)IÈ+I	È1H4È2I	È>IÉI!ÉIÉIÉIÉI!Útxn_managerr_   Úserialc                óp  #   • UR                   S   R                  nU[        R                  R                  :H  nU R                  5       nUR                  5       n	UR                  [        R                  :H  n
U
(       aI  [        [        R                  R                  U5      nUR                  U	S[        U5      5      I Sh  v•N   O`[        [        R                  R                  U5      n[         R"                  " S[%        U	5      5      U	-   nUR'                  XÕ5      I Sh  v•N   [        R(                  R+                  XX:5       nSnSnSnU(       d÷  [-        U5      u  nnUb	  Ub  UU:”  a  UnU
(       a)  [        U5      nWR/                  SU5      I Sh  v•N u  nnOC[1        WSU5      I Sh  v•N n[         R2                  " SU5      u  n[1        UUU5      I Sh  v•N n[        R4                  R7                  UUR8                  UR:                  SUUU
(       + US9nUR=                  U5      nU7v •  UR>                  nU(       d  M÷  UR8                  (       a3  Ub0  UR@                  (       d  [        RB                  RE                  S	5      eSSS5        g GNØ GNz GN Nð NÄ! , (       d  f       g= f7f)
z'Given a socket, does the zone transfer.r   Nrx   Fr=   rj   T)r6   r7   ÚxfrÚoriginÚtsig_ctxÚmultir5   zmissing TSIG)#ÚquestionÚrdtyper,   Ú	rdatatypeÚIXFRÚfrom_wire_originr/   Útyper   rY   r   rU   ÚDatagramSocketr0   r%   ÚStreamSocketrz   Úpackrl   rn   rè   ÚInboundr   r>   rv   r{   r-   r@   r6   rZ   Úprocess_messagerê   Úhad_tsigÚ	exceptionÚ	FormError)rå   r_   r;   ræ   rM   r#   rí   Úis_ixfrré   rD   Úis_udprb   rc   ro   ÚinboundÚdonerê   rG   r`   ÚmexpirationÚrwirer|   r}   s                          r   Ú_inbound_xfrr   H  s/  é € ð �^‰^˜AÑ×%Ñ%€FØœŸ™×*Ñ*Ñ*€GØ×)Ñ)Ó+€FØ�=‰=‹?€DØ�V‰V”v×(Ñ(Ñ(€FÞÜœ×(Ñ(×7Ñ7¸Ó;ˆØ�o‰o˜d D¬(°:Ó*>Ó?×?Ñ?äœ×(Ñ(×5Ñ5°qÓ9ˆÜ—’˜T¤3 t£9Ó-°Ñ4ˆØ×Ñ˜vÓ2×2Ð2Ü	�‰�‰˜¨fÔ	=ÀØˆØˆØ(,ˆÞÜ-¨gÓ6ÑˆQ�ØÑ"ØÑ&¨;¸Ó+Cà(�ÞÜ" ;Ó/�Ø#+×#4Ñ#4°U¸GÓ#D×D‘
�™ä+¨H°a¸ÓE×E�Ü—}’} T¨5Ó1‘�Ü+¨H°a¸ÓE×E�Ü—‘×%Ñ%ØØŸ™Ø!ŸI™IØØØ!Ø!”zØ!(ð &ð 	ˆAð ×*Ñ*¨1Ó-ˆDØ‹GØ—z‘zˆH÷3 �$ð4 �=�=˜Q™]°1·:·:Ü—-‘-×)Ñ)¨.Ó9Ð9÷? 
>Ð	=ò 	@ò 	3ò EáEáE÷! 
>Õ	=üs|   ‚B>J6Ã JÃA J6Ä!JÄ"$J6ÅAJ%ÆJÆJ%Æ0J!Æ1-J%ÇJ#ÇA*J%ÉAJ%Ê
J6ÊJ6ÊJ%Ê!J%Ê#J%Ê%
J3Ê/J6ÚlifetimeÚudp_modec
           
   ƒ   ó°  #   • Uc"  [         R                  R                  U5      u  p*O[         R                  R                  U5      n
[         R                  R                  U 5      n[        X¶U5      nX4nU	(       d  [         R                  R                  5       n	[        U5      u  pïUR                  S   R                  [         R                  R                  :X  ao  U[        R                  :w  a[  U	R!                  U["        R$                  SXÍ['        U5      5      I Sh  v•N nU ISh  v•N    [)        UUUU
UU5        Sh  v•N nM  U	R!                  U["        R.                  SXÍ['        U5      5      I Sh  v•N nU ISh  v•N   [)        UUX*XO5        Sh  v•N nM   Nƒ Nz Nb
  SSS5      ISh  v•N    g! [         R                  R*                   a    U[        R,                  :X  a  e  Of = fSSS5      ISh  v•N    M¾  ! , ISh  v•N  (       d  f       NÕ= f N¨ NŸ NŠ
 SSS5      ISh  v•N    g! , ISh  v•N  (       d  f       g= f7f)aU  Conduct an inbound transfer and apply it via a transaction from the
txn_manager.

*backend*, a ``dns.asyncbackend.Backend``, or ``None``.  If ``None``,
the default, then dnspython will use the default backend.

See :py:func:`dns.query.inbound_xfr()` for the documentation of
the other parameters, exceptions, and return type of this method.
Nr   )r,   rè   Ú
make_queryÚextract_serial_from_queryrR   rS   r   rU   rV   r   rì   rí   rî   rï   r   ÚNEVERrX   r   rY   r%   r   ÚUseTCPÚONLYr�   )rL   rå   r;   r   rM   r  rN   rO   r  rP   ræ   r   r]   r^   r`   r#   r_   s                    r   Úinbound_xfrr	    sÞ  é € ð* �}ÜŸ'™'×,Ñ,¨[Ó9‰ˆ�ä—‘×2Ñ2°5Ó9ˆÜ	�‰×	 Ñ	  Ó	'€BÜ˜2 {Ó3€FØˆ]€FÞÜ×"Ñ"×6Ñ6Ó8ˆÜ$ XÓ.�O€QØ‡~�~�aÑ×Ñ¤3§=¡=×#5Ñ#5Ó5¸(ÄgÇmÁmÓ:SØ×%Ñ%Ø”×!Ñ! 1 f´h¸zÓ6Jó
÷ 
ˆ÷ ’1ðÜ+ØØØØØØô ÷ ˜!ñ ð ×!Ñ!Ø
ŒF×Ñ  6´8¸JÓ3Gó÷ 	€A÷ ŠqÜ#Ø˜˜E¨7ô
÷ 	�!ñ ñ5
ñ ñð  ð ÷ —1‘1øô —7‘7—>‘>ó ØœwŸ|™|Ó+Øñ ,ðú÷ —1—1—1—1‘1úñ 	ñ ñ	ð 
÷ �q�q�q�qˆqüs&  ‚DIÄF#Ä 
IÄ*F%Ä+IÄ.H	Ä0F=Å F)ÅF'ÅF)ÅF=Å/IÅ:H#Å;
IÆH%ÆIÆ	H<ÆH)ÆH'ÆH)Æ H<Æ#IÆ%IÆ'F)Æ)F=Æ+IÆ6F9Æ7IÆ=3G3Ç0H	Ç2G3Ç3H	Ç6IÈHÈIÈ	H ÈHÈH ÈIÈ%IÈ'H)È)H<È*IÈ5H8È6IÈ<IÉIÉIÉI)N)
NNFFNr   FFFN)NrJ   Nr   FFFFNNF)NrJ   Nr   FFFNNNF)NFNr   F)NrJ   Nr   FFNN)NéU  Nr   FFNNNNT)
Nr�   Nr   FFTNTN)Nr
  Nr   FFNTNNN)XÚ__doc__r½   Ú
contextlibr®   r   rz   r!   Úurllib.parser§   Útypingr   r   r   r   r   Údns.asyncbackendr,   Údns.exceptionÚdns.inetÚdns.messageÚdns.nameÚdns.quicÚdns.rdatatypeÚdns.transactionÚdns.tsigÚdns.xfrÚdns._asyncbackendr   Ú	dns.queryr	   r
   r   r   r   r   r   r   r   r   r   ÚsslÚImportErrorÚdns._no_sslÚ_no_sslrµ   rR   Úlow_level_address_tuplerT   r   r%   rU   rò   r-   r.   ÚbytesÚfloatÚintr3   ÚboolÚnameÚNameÚtsigÚKeyrI   r»   ÚBackendra   ró   rg   rp   rv   r~   re   Ú
SSLContextrˆ   rŽ   Ú	AF_UNSPECr¬   rÌ   r²   r³   r´   ÚtransactionÚTransactionManagerÚSocketr   r  r	  © r   r   Ú<module>r/     s4  ðñ$ ã Û Û Û Û Û Û ß 3Õ 3ã Û Û Û Û Û Û Û Û Û Ý )÷÷ ÷ ñ ðÛö Ûð �8‰8×+Ñ+€òô ð  $ñ	Ø
×
Ñ
×
)Ñ
)ðà
�+‰+×
Ñ
 Ñ
%ðð ðð ˜‘ð	ð
 ˆ3�ˆ:Ñõð@ #Ø#Ø#Ø"Ø8<Ø #Ø!Ø %ØØ(,ñ:0Ø
×
Ñ
×
)Ñ
)ð:0à�t‘ð:0ð ˜‘ð:0ð ð	:0ð
 ð:0ð �#—(‘(—-‘- §¡§¡Ð-Ñ.°Ñ5ð:0ð ˜‘ð:0ð ð:0ð ð:0ð ð:0ð �;‰;×Ñ Ñ%ð:0ð 	õ:0ð@ !ØØØØ#Ø"Ø!Ø %Ø37Ø/3Øñ?Ø
‡{�{×Ñð?àð?ð �T‰\ð?ð ð	?ð
 �$‰Jð?ð ð?ð ð?ð ð?ð ð?ð ð?ð ×
Ñ
×
)Ñ
)¨DÑ
0ð?ð ×Ñ×%Ñ%¨Ñ,ð?ð ð?ð 	‡[�[×Ñõ?ðJ !ØØØØ#Ø"Ø!Ø7;Ø59Ø/3ØñA Ø
‡{�{×ÑðA àðA ð �T‰\ðA ð ð	A ð
 �$‰JðA ð ðA ð ðA ð ðA ð ðA ð ×Ñ×-Ñ-°Ñ4ðA ð ×Ñ×+Ñ+¨dÑ2ðA ð ×Ñ×%Ñ%¨Ñ,ðA ð ðA ð ˆ3�;‰;×Ñ Ð$Ñ%õA ðN  $ñ$Ø
×
Ñ
×
'Ñ
'ð$à
�+‰+×
Ñ
 Ñ
%ð$ð ˜‘ð$ð ˆ3�ˆ:Ñõ	$ò2ð   $Ø"Ø8<Ø #Ø!ñØ
×
Ñ
×
'Ñ
'ðà˜‘ðð ðð �#—(‘(—-‘- §¡§¡Ð-Ñ.°Ñ5ð	ð
 ˜‘ðð ðð ˆ3�;‰;×Ñ Ð%Ñ&õðB !ØØØØ"Ø!Ø15Ø/3ñ:Ø
‡{�{×Ñð:àð:ð �T‰\ð:ð ð	:ð
 �$‰Jð:ð ð:ð ð:ð ð:ð ×
Ñ
×
'Ñ
'¨$Ñ
.ð:ð ×Ñ×%Ñ%¨Ñ,ð:ð 	‡[�[×Ñõ:ð@ !ØØØØ"Ø!Ø15Ø/3Ø)-Ø"&ØñCØ
‡{�{×ÑðCàðCð �T‰\ðCð ð	Cð
 �$‰JðCð ðCð ðCð ðCð ×
Ñ
×
'Ñ
'¨$Ñ
.ðCð ×Ñ×%Ñ%¨Ñ,ðCð —‘ $Ñ&ðCð ˜4‘ZðCð �3‰JðCð 	‡[�[×ÑõCðLØÐ3Ñ4ðà!ôð" !ØØØØ"Ø!ØIMØØØ*.Ø$(Ø7;Ø×"Ñ"Ø +× 3Ñ 3ñ!mØ
‡{�{×Ñðmàðmð �T‰\ðmð ð	mð
 �$‰Jðmð ðmð ðmð ðmð ÐEÑFðmð ðmð ðmð �3‰J˜Ÿ™Ñ'ðmð ˜T‘zðmð Ð3Ñ4ðmð ðmð  ð!mð" 	‡[�[×Ñõ#mðh !ØØØØ"Ø!Ø*.Ø/3ØØ6:ñ=Ø
‡{�{×Ñð=àð=ð 
ð=ð �T‰\ð	=ð
 ð=ð �$‰Jð=ð ð=ð ð=ð ð=ð �3‰J˜Ÿ™Ñ'ð=ð ×Ñ×%Ñ%¨Ñ,ð=ð ð=ð —‘×,Ñ,¨tÑ3ð=ð 	‡[�[×Ñõ=ðF !ØØØØ"Ø!Ø6:ØØ/3ØØ"&ñCØ
‡{�{×ÑðCàðCð �T‰\ðCð ð	Cð
 �$‰JðCð ðCð ðCð ðCð —‘×,Ñ,¨tÑ3ðCð �3‰JðCð ×Ñ×%Ñ%¨Ñ,ðCð �D‰jðCð ˜4‘ZðCð 	‡[�[×ÑõCðL4:Ø—‘×3Ñ3ð4:à
×Ñ×Ñð4:ð �;‰;×Ñð4:ð �$‰Jð	4:ð
 �T‰\ð4:ð ð4:ð 	ô4:ðt )-ØØ Ø!ØØØŸ™Ø/3ñ:Øð:à—‘×3Ñ3ð:ð �;‰;×Ñ Ñ%ð:ð ð	:ð
 �T‰\ð:ð �d‰lð:ð �$‰Jð:ð ð:ð ð:ð ×Ñ×%Ñ%¨Ñ,ð:ð 
ö:øðO ó ßÐðús   Á6\  Ü \0Ü/\0