Files
pyGoEdge-UserPanel/.venv/Lib/site-packages/dns/__pycache__/asyncquery.cpython-312.pyc

366 lines
37 KiB
Plaintext
Raw Normal View History

2025-11-18 03:36:49 +08:00
<EFBFBD>
g<> iI~<00>#<00>$<00>dZddlZddlZddlZddlZddlZddlZddlZddl m
Z
m Z m Z m Z mZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZddlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' ddl(Z(e&rddl,Z,ejZj\Z/d<06>Z0dFd<07>Z1 dFdejdjfd ejhjje6zd
e
d e7dzd e e8e7ff
d <0A>Z9 dGdejdjfd
e
dzd e7dzde:de:de ejvjxejzj|fdzde6dzde:de:de:dejhjjdzd e
fd<17>Z? dHdejhjjde@de7dzde8de@dzde8de:de:de:de:dejdjfdzdejdj<>dzde:d ejhjjfd <20>ZB dIdejhjjde@de7dzde8de@dzde8de:de:de:d!ejdjfdzd"ejdj<>dzdejdj<>dzde:d e ejhjje:ffd#<23>ZD dFdejdj<>d ejhjje6zd e7dzd e e8e7ffd$<24>ZEd%<25>ZF dJdejdj<>d e7dzde:de ejvjxejzj|fdzde6dzde:d e ejhjje7ffd&<26>ZG dKdejhjjde@de7dzde8de@dzde8de:de:dejdj<>dzdejdj<>dzd ejhjjfd'<27>ZH dLdejhjjde@de7dzde8de@dzde8de:de:dejdj<>dzdejdj<>dzd)e(j<>dzd*e@dzd+e:e@zd ejhjjfd,<2C>ZJd-e d.d d.fd/<2F>ZKdd0dddddd1d(d(ddej<>ej<>fdejhjjde@de7dzde8de@dzde8de:de:d2e d3d4e@d5e:d+e:e@ze(j<>zd6e@dzd-e d.d7e8d8ed ejhjjf"d9<64>ZN dMdejhjjde@d:e@de7dzde8de@dzde8de:de:d+e:e@ze(j<>zdejdj<>dzd5e:d;ej<>j<>dzd ejhjjfd<<3C>ZQ dNdejhjjde@de7dzde8de@dzde8de:de:d;ej<>j<>dzd+e:e@zdejdj<>dzd=e@dzd*e@dzd ejhjjfd><3E>ZOd?ej<>j<>d@ejdj<>dejhjjdAe8dzde7dzd e7d e
fdB<64>ZUdddddde!j<>dfde@d?ej<>j<>dejhjjdzde8de7dzdCe7dzde@dzde8dDe!dejdj<>dzd dfdE<64>ZWy#e)$r
ddl*m+Z(Y<00><06><>wxYw)OzTalk to a DNS server.<2E>N)<05>Any<6E>Dict<63>Optional<61>Tuple<6C>cast)<01> NullContext) <0B> BadResponse<73> HTTPVersion<6F>NoDOH<4F>NoDOQ<4F>UDPMode<64> _check_status<75>_compute_times<65>_matches_destination<6F>
_remaining<EFBFBD>have_doh<6F>make_ssl_contextc<00><><00>|s|rF|<01>@|tjk(rd}||fS|tjk(rd}||fStd|<00><00><02><00>||fSy)Nz0.0.0.0z::zunknown address family )<04>socket<65>AF_INET<45>AF_INET6<54>NotImplementedError)<03>af<61>address<73>ports <20>=E:\Project\pygoedge\.venv\Lib\site-packages\dns/asyncquery.py<70> _source_tuplerBsl<00><00><0F>$<24> <12>?<3F><11>V<EFBFBD>^<5E>^<5E>#<23>#<23><07>
<18><14><EFBFBD><1E> <14>v<EFBFBD><EFBFBD><EFBFBD>&<26><1E><07><18><14><EFBFBD><1E>*<2A>,C<>B<EFBFBD>4<EFBFBD>*H<>I<>I<><17><14><EFBFBD><1E><13>c<00>R<00>|<00>%|stj<00>}t||z
d<01>Sy<00>Nr)<02>time<6D>max)<02>
expiration<EFBFBD>nows r<00>_timeoutr%Rs+<00><00><11><1D><12><16>)<29>)<29>+<2B>C<EFBFBD><12>:<3A><03>#<23>Q<EFBFBD>'<27>'<27>r<00>sock<63>what<61> destinationr#<00>returnc<00><00><>K<00>t|tjj<00>r|j <00>}t j
<00>}|j ||t||<04><00><00>d{<00><02><03>}||fS7<00><08>w)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)<08>
isinstance<EFBFBD>dns<6E>message<67>Message<67>to_wirer!<00>sendtor%)r&r'r(r#<00> sent_time<6D>ns r<00>send_udpr3[s^<00><00><><00>.<12>$<24><03> <0B> <0B>+<2B>+<2B>,<2C><13>|<7C>|<7C>~<7E><04><14> <09> <09> <0B>I<EFBFBD><12>k<EFBFBD>k<EFBFBD>$<24> <0B>X<EFBFBD>j<EFBFBD>)<29>-L<>M<>M<>A<EFBFBD> <0A>y<EFBFBD>><3E><19> N<01>s<00>A)A6<01>+A4<04>, A6F<>ignore_unexpected<65>one_rr_per_rrset<65>keyring<6E> request_mac<61>ignore_trailing<6E>raise_on_truncation<6F> ignore_errors<72>queryc <00><00><>K<00>d} |jdt|<02><00><00>d{<00><02><03>\} } t|j| ||<03>s<01>@t j<00>} t
j j| |||||<08><04>}| r|
<EFBFBD>|
j|<0E>s<01><>|| | fS7<00>u#t
j j$r.}| r&|
<EFBFBD>$|
j|j <00><00>sYd}~<0F>܂d}~wt$r| rY<00><><EFBFBD>wxYw<01>w)ajRead 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<00><><EFBFBD>N)r6r7r5r8r9) <0B>recvfromr%r<00>familyr!r,r-<00> from_wire<72> Truncated<65> is_response<73> Exception)r&r(r#r4r5r6r7r8r9r:r;<00>wire<72> from_address<73> received_time<6D>r<>es r<00> receive_udprIys<00><00><><00>0 <0F>D<EFBFBD>
<0E>%)<29>]<5D>]<5D>5<EFBFBD>(<28>:<3A>:N<>%O<>O<><1C><14>|<7C>#<23> <10>K<EFBFBD>K<EFBFBD><1C>{<7B>4E<34>
<EFBFBD> <15><1C> <09> <09> <0B> <0A> <16><13> <0B> <0B>%<25>%<25><14><1F>'<27>!1<> /<2F>$7<> &<26><0E>A<EFBFBD>. <19>U<EFBFBD>.<2E>u<EFBFBD>7H<37>7H<37><11>7K<37> <14><11>=<3D>,<2C>/<2F>/<2F>A P<01><><13>{<7B>{<7B>$<24>$<24> <16><1E><19>%<25><1D>)<29>)<29>!<21>)<29>)<29>+<2B>6<><18><15><><18> <16><1C><18><15>  <16>sK<00>"C7<01>B<04>4C7<01>%B<00>?C7<01>C4<03>9#C"<03>C7<01>!C"<03>"C4<03>0C7<01>2C4<03>4C7<01>5<00>q<>where<72>timeoutr<00>source<63> source_port<72>backendc <00><00><>K<00>|j<00>} t|<02>\}}tjj |<01>}t ||f|<10>}|
r t |
<EFBFBD>}no| stjj<00>} t|||<05>}| j<00>r||f}nd}| j|tjd||<14><00>d{<00><02><03>}|4<00>d{<00><02><03>}t|| ||<0F><00>d{<00><03><03>t||||||j |j"|| | |<00> <00>d{<00><03><03>\}}}||z
|_| s|j'|<16>st(<00>|cddd<01><00>d{<00><02><03>S7<00><>7<00><>7<00>s7<00>D7<00> #1<00>d{<00><03><03>7swYyxYw<01>w)aFReturn 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/rr,<00>inet<65>af_for_address<73>_lltupler<00> asyncbackend<6E>get_default_backendr<00>datagram_connection_required<65> make_socketr<00>
SOCK_DGRAMr3rIr6<00>macr!rBr )rKrLrMrrNrOr4r5r8r9r&rPr:rD<00>
begin_timer#rr(<00>cm<63>stuple<6C>dtuple<6C>srGrF<00>_s r<00>udpra<00>s^<00><00><><00>8 <0A>9<EFBFBD>9<EFBFBD>;<3B>D<EFBFBD>-<2D>g<EFBFBD>6<><1C>Z<EFBFBD><1A> <0C><18><18> <20> <20><15> '<27>B<EFBFBD><1A>E<EFBFBD>4<EFBFBD>=<3D>"<22>-<2D>K<EFBFBD> <0B>5@<40><14>5F<35><02><16><19>&<26>&<26>:<3A>:<3A><<3C>G<EFBFBD><1E>r<EFBFBD>6<EFBFBD>;<3B>7<><06> <12> /<2F> /<2F> 1<><1B>T<EFBFBD>]<5D>F<EFBFBD><19>F<EFBFBD><1A>&<26>&<26>r<EFBFBD>6<EFBFBD>+<<3C>+<<3C>a<EFBFBD><16><16>P<> P<><02><11>r<EFBFBD>Q<EFBFBD><16>q<EFBFBD>$<24> <0B>Z<EFBFBD>8<>8<>8<>&1<> <0A> <17> <16> <1D> <1C> <0A>I<EFBFBD>I<EFBFBD> <0A>E<EFBFBD>E<EFBFBD> <1B> <1F> <19> <0A> '
<EFBFBD> !
<EFBFBD><1D><11>M<EFBFBD>1<EFBFBD><1F><1A>+<2B><01><06><1E><11><1D><1D>q<EFBFBD>!1<><1D> <1D><10>)<12>r<EFBFBD>r<EFBFBD>Q<01><><11><>8<><38> !
<EFBFBD><EFBFBD><12><>r<EFBFBD>r<EFBFBD>r<EFBFBD>s~<00>CE6<01>E<04>
E6<01>E<06>E6<01>E!<03>'E<06>(0E!<03>E<06>,E!<03> E6<01>E<06>E6<01>E6<01>E!<03>E!<03>E6<01>!E3<07>'E* <0C>(E3<07>/E6<01>udp_sock<63>tcp_sockc <00><00><>K<00> t|||||||||d| | | <0C> <00>d{<00><03><03>} | dfS7<00>#tjj$r$t |||||||||
| <0B>
<00>d{<00><03><03>7} | dfcYSwxYw<01>w)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)rar,r-rA<00>tcp)rKrLrMrrNrOr4r5r8rbrcrPr:<00>responses r<00>udp_with_fallbackrg<00>s<><00><00><><00>F <20><1C> <0A> <11> <13> <10> <12> <17> <1D> <1C> <1B> <10> <14> <13> <19>
<EFBFBD>
<EFBFBD><08><19>%<25> <20> <20>
<EFBFBD><EFBFBD> <0F>;<3B>;<3B> <20> <20>  <20><1C> <0A> <11> <13> <10> <12> <17> <1C> <1B> <14> <13> 
<EFBFBD> 
<EFBFBD> 
<EFBFBD><08><19>$<24><1F><1F>  <20>s=<00>A-<01>)<00>'<04>)<00>A-<01>)<00>4A*<03>A <06> A*<03>'A-<01>)A*<03>*A-c<00><00>BK<00>t|tjj<00>r|j d<01><02>}nt |<01>j dd<04>|z}tj<00>}|j|t||<04><00><00>d{<00><02><03>t |<03>|fS7<00><11>w)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)<01>prepend_length<74><00>bigN)
r+r,r-r.r/<00>len<65>to_bytesr!<00>sendallr%)r&r'r#<00>tcpmsgr1s r<00>send_tcprp<s<><00><00><><00><12>$<24><03> <0B> <0B>+<2B>+<2B>,<2C><15><1C><1C>T<EFBFBD><1C>2<><06>
<15>T<EFBFBD><19>#<23>#<23>A<EFBFBD>u<EFBFBD>-<2D><04>4<><06><14> <09> <09> <0B>I<EFBFBD>
<0E>,<2C>,<2C>v<EFBFBD>x<EFBFBD>
<EFBFBD>I<EFBFBD>><3E>
?<3F>?<3F>?<3F> <0F><06>K<EFBFBD><19> #<23>#<23>@<01>s<00>B B<01> B<04> Bc<00><00><>K<00>d}|dkDrL|j|t|<02><00><00>d{<00><02><03>}|dk(r td<04><00>|t|<04>z
}||z}|dkDr<01>L|S7<00>/<2F>w)z|Read the specified number of bytes from stream. Keep trying until we
either get the desired amount, or we hit EOF.
rrN<>EOF)<04>recvr%<00>EOFErrorrl)r&<00>countr#r_r2s r<00> _read_exactlyrvUsh<00><00><><00> <0C>A<EFBFBD>
<0F>!<21>)<29><16>)<29>)<29>E<EFBFBD>8<EFBFBD>J<EFBFBD>#7<>8<> 8<><01> <0C><03>8<EFBFBD><1A>5<EFBFBD>/<2F> !<21><15><03>A<EFBFBD><06><0E><05> <0A><01>E<EFBFBD><01> <10>!<21>)<29> <0A>H<EFBFBD> 9<>s<00>&A<01>A<04>,A<01>Ac<00><00>K<00>t|d|<01><00>d{<00><02><03>}tjd|<06>\}t|||<01><00>d{<00><02><03>}tj<00>} tj
j |||||<05><04>}
|
| fS7<00>m7<00>B<EFBFBD>w)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.
rjN<>!H<>r6r7r5r8)rv<00>struct<63>unpackr!r,r-r@) r&r#r5r6r7r8<00>ldata<74>lrDrFrGs r<00> receive_tcpr~cs<><00><00><><00>  <20><04>a<EFBFBD><1A>4<> 4<>E<EFBFBD> <11>=<3D>=<3D><14>u<EFBFBD> %<25>D<EFBFBD>Q<EFBFBD><1E>t<EFBFBD>Q<EFBFBD>
<EFBFBD>3<> 3<>D<EFBFBD><18>I<EFBFBD>I<EFBFBD>K<EFBFBD>M<EFBFBD> <0B> <0B> <0B><1D><1D> <0C><17><1F>)<29>'<27> <1E> <06>A<EFBFBD> <0E>}<7D> <1D><1D> 5<><35> 3<>s"<00>B<01>B<04>,B<01>B<04>AB<01>Bc
<00><00><>K<00>|j<00>}
t|<02>\} } |r$|j<00><00>d{<00><02><03>t|<08>} n|tj
j |<01>}t|||<05>}||f}| stjj<00>} | j|tjd|||<02><00>d{<00><02><03>} | 4<00>d{<00><02><03>}t||
| <0C><00>d{<00><03><03>t|| ||j|j |<07><00>d{<00><03><03>\}}|| z
|_|j%|<12>st&<00>|cddd<01><00>d{<00><02><03>S7<00><01>7<00><>7<00><>7<00>n7<00>D7<00>#1<00>d{<00><03><03>7swYyxYw<01>w)aOReturn 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<00> getpeernamerr,rRrSrrUrVrXr<00> SOCK_STREAMrpr~r6rZr!rBr )rKrLrMrrNrOr5r8r&rPrDr[r#r\rr]r^r_rGrFs rrere<00>sL<00><00><><00>4 <0A>9<EFBFBD>9<EFBFBD>;<3B>D<EFBFBD>-<2D>g<EFBFBD>6<><1C>Z<EFBFBD><1A> <0B><13><1E><1E> <20> <20> <20>5@<40><14>5F<35><02><11>X<EFBFBD>X<EFBFBD> $<24> $<24>U<EFBFBD> +<2B><02><1E>r<EFBFBD>6<EFBFBD>;<3B>7<><06><17><14><1D><06><16><19>&<26>&<26>:<3A>:<3A><<3C>G<EFBFBD><1A>&<26>&<26> <0E><06>"<22>"<22>A<EFBFBD>v<EFBFBD>v<EFBFBD>w<EFBFBD>
<EFBFBD>
<EFBFBD><02><12>r<EFBFBD>Q<EFBFBD><16>q<EFBFBD>$<24>
<EFBFBD>+<2B>+<2B>+<2B>#.<2E> <0A> <16> <1C> <0A>I<EFBFBD>I<EFBFBD> <0A>E<EFBFBD>E<EFBFBD> <1B> $
<EFBFBD>
<EFBFBD><1A><11>M<EFBFBD><1F><1A>+<2B><01><06><10>}<7D>}<7D>Q<EFBFBD><1F><1D> <1D><10><12>r<EFBFBD>r<EFBFBD> !<21><>
<EFBFBD><EFBFBD><12><>+<2B><>
<EFBFBD><EFBFBD><12><>r<EFBFBD>r<EFBFBD>r<EFBFBD>s<EFBFBD><00>4E(<01>E<04>BE(<01>>E <04>?
E(<01> E <06>
E(<01> E<03>E <06>+E<03>
E<06> )E<03>4 E(<01>E<06>E(<01> E(<01> E(<01> E<03>E<03>E(<01>E%<07>E <0C>E%<07>!E(T<> ssl_context<78>server_hostname<6D>verifyc <00><00>bK<00>t|<02>\} }|r t|<08>}n<>|
<EFBFBD>t| | dudg<01>}
tjj |<01>}t |||<05>}||f}| stjj<00>} | j|tjd||||
| <0B><00>d{<00><02><03>}|4<00>d{<00><02><03>}t|<0E>}t|||||||||| <09>
<00>d{<00><03><03>}tj<00>}|| z
|_|cddd<01><00>d{<00><02><03>S7<00>g7<00>^7<00>97<00> #1<00>d{<00><03><03>7swYyxYw<01>w)a<>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)rrrr,rRrSrrUrVrXrr<>r%rer!)rKrLrMrrNrOr5r8r&rPr<>r<>r<>r[r#r\rr]r^r_rf<00>end_times r<00>tlsr<73><00>s9<00><00><><00>< .<2E>g<EFBFBD>6<><1C>Z<EFBFBD><1A> <0B>5@<40><14>5F<35><02> <16> <1E>*<2A>6<EFBFBD>?<3F>$<24>3N<33>QV<51>PW<50>X<>K<EFBFBD> <10>X<EFBFBD>X<EFBFBD> $<24> $<24>U<EFBFBD> +<2B><02><1E>r<EFBFBD>6<EFBFBD>;<3B>7<><06><17><14><1D><06><16><19>&<26>&<26>:<3A>:<3A><<3C>G<EFBFBD><1A>&<26>&<26> <0E> <12> <1E> <1E> <0A> <12> <12> <13> <17> <1B> 
<EFBFBD> 
<EFBFBD><02><12>r<EFBFBD>Q<EFBFBD><1A>:<3A>&<26><07><1C> <0A> <11> <13> <10> <12> <17> <1C> <1B> <0A> <13> 
<EFBFBD> 
<EFBFBD><08><18>9<EFBFBD>9<EFBFBD>;<3B><08> <20>:<3A>-<2D><08> <0A><17>!<12>r<EFBFBD>r<EFBFBD> 
<EFBFBD><EFBFBD><12><> 
<EFBFBD><EFBFBD><12><>r<EFBFBD>r<EFBFBD>r<EFBFBD>sl<00>B(D/<01>*D<04>+
D/<01>5D<06>6D/<01>9#D<03>D<06>#D<03> D/<01> D<06> D/<01>D/<01>D<03>D/<01>D,<07> D# <0C>!D,<07>(D/<01>resolverzdns.asyncresolver.Resolverc<00>F<00>|<00>ddl}|jj<00>}|Sr )<03>dns.asyncresolver<65> asyncresolver<65>Resolver)r<>r,s r<00>_maybe_get_resolverr<72>s&<00><00> <10><17> <20><16>$<24>$<24>-<2D>-<2D>/<2F><08> <13>Or<00><>z
/dns-query<72>clientz.httpx.AsyncClient|dns.quic.AsyncQuicConnection<6F>path<74>post<73>bootstrap_addressr?<00> http_versionc<00><00><> K<00> tjj|<01>}|}|<10>Ztjj |<01>r;|t
j k(r d|<01>d|<03>| <09><00>}n|t
jk(r
d|<01>d|<03>| <09><00>}i}| <0C><>tjj|<11>}|j<00> td<06><00>tjj |j<00>r|j} |j|d<|j<00> |j}|tjk(s|tjk(r<>t s<>| <0C>it#| <0A>} j<00>J<00>| j%|j|<0E><00>d{<00><02><03>}t'j(t+|j-<00><00><00>} |r/t/|tj0j2<00>s td<08><00>|<08>&t/|tj0j2<00>sJ<00>t5|| |||||||| |
|<08> <09> <00>d{<00><02><03>St st6<00>|r%t/|t8j:<00>s td
<EFBFBD><00>|j=<00>}d d i}|tj>tjfv}|tj@tjfv}tjBjE<00>}|<04>d}d }n|}|}|r tG|<08>}n7|jI<00>|||| || | |<0E><0E>}t9j:||| |<1D><0F>}|4<00>d{<00><02><03>}|
rT|jKd tMtO|<15><00>d<10><02>|jQ|jS||||<12><11>|<02><00>d{<00><03><03>}nctUjV|<15>jYd<12>}|j[<00>} |jQ|j]||d| i|<12><14>|<02><00>d{<00><03><03>}ddd<01><00>d{<00><02><03>j^dks|j^dkDr't|<01>d|j^<00>d|j`<00><02><05><00>tjbje|j`|jf|jh||<07><19>}!|jjjm<00>|!_7|jq|!<21>str<00>|!S#t$rd}Y<00><04><>wxYw7<00><03>G7<00><02><>7<00><01><>7<00><01>S7<00><>7<00><>#1<00>d{<00><03><03>7swY<00><>xYw<01>w)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.
Nzhttps://<2F>:z https://[z]:zno hostname in URL<52> sni_hostnamez8client parameter must be a dns.quic.AsyncQuicConnection.)r<>r<><00>
connectionz-client parameter must be an httpx.AsyncClient<6E>acceptzapplication/dns-messager)<08> local_address<73>http1<70>http2r<32><00>
local_portr<EFBFBD>r<>r?)r<>r<>r<><00> transport)z content-typezcontent-length)<03>headers<72>content<6E>
extensions<EFBFBD>=r,)r<><00>paramsr<73><00><>i+z responded with status code z
Response body: ry):r,rRrS<00>
ValueError<EFBFBD>
is_addressrrr<00>urllib<69>parse<73>urlparse<73>hostnamerr
<00>H3<48>DEFAULTrr<><00> resolve_name<6D>random<6F>choice<63>list<73> addressesr+<00>quic<69>AsyncQuicConnection<6F>_http3r <00>httpx<70> AsyncClientr/<00>H1<48>H2rUrVr<00>get_transport_class<73>update<74>strrl<00>wait_forr<72><00>base64<36>urlsafe_b64encode<64>rstrip<69>decode<64>get<65> status_coder<65>r-r@r6r7<00>elapsed<65> total_secondsr!rBr )"rKrLrMrrNrOr5r8r<>r<>r<>r<>r<>r<>r?r<>r<00>urlr<6C><00>parsed<65>answersrDr<><00>h1<68>h2rPr<>r<>r\r<><00>
the_clientrf<00>twirerGs" r<00>httpsr<73>s<><00><00><><00><<12> <10>X<EFBFBD>X<EFBFBD> $<24> $<24>U<EFBFBD> +<2B><02> <10>C<EFBFBD> <09>~<7E>#<23>(<28>(<28>-<2D>-<2D>e<EFBFBD>4<> <0A><16><1E><1E> <1F><1C>U<EFBFBD>G<EFBFBD>1<EFBFBD>T<EFBFBD>F<EFBFBD>4<EFBFBD>&<26>1<>C<EFBFBD> <0F>6<EFBFBD>?<3F>?<3F> "<22><1D>e<EFBFBD>W<EFBFBD>B<EFBFBD>t<EFBFBD>f<EFBFBD>T<EFBFBD>F<EFBFBD>3<>C<EFBFBD><13>J<EFBFBD><18> <20><17><1C><1C>&<26>&<26>s<EFBFBD>+<2B><06> <11>?<3F>?<3F> "<22><1C>1<>2<> 2<> <0E>8<EFBFBD>8<EFBFBD> <1E> <1E>v<EFBFBD><EFBFBD><EFBFBD> /<2F> &<26><0F><0F> <1D>)/<2F><1F><1F>J<EFBFBD>~<7E> &<26> <11>;<3B>;<3B> "<22><19>;<3B>;<3B>D<EFBFBD><13>{<7B>~<7E>~<7E>%<25><14> <0B>+<2B>+<2B>+<2B>H<EFBFBD> <1C> $<24>*<2A>8<EFBFBD>4<>H<EFBFBD><19>?<3F>?<3F>.<2E> .<2E>.<2E>$<24>1<>1<><16><0F><0F><16><0E><0E>G<EFBFBD>!'<27> <0A> <0A>d<EFBFBD>7<EFBFBD>3D<33>3D<33>3F<33>.G<> H<> <1D> <11>*<2A> <12>C<EFBFBD>H<EFBFBD>H<EFBFBD>0<>0<>
<EFBFBD><1D>W<>X<> X<><15>~<7E><1A>F<EFBFBD>C<EFBFBD>H<EFBFBD>H<EFBFBD>4P<34>4P<34>!Q<>Q<>Q<><1B> <0A> <1D> <0F> <13> <10> <12> <17> <1C> <1B><19><15><1D> 
<EFBFBD> 
<EFBFBD>
<EFBFBD> <14><13> <0B> <0A>j<EFBFBD><16><15>):<3A>):<3A>;<3B><18>H<>I<>I<> <0A>9<EFBFBD>9<EFBFBD>;<3B>D<EFBFBD><17>2<>3<>G<EFBFBD> <15>+<2B>.<2E>.<2E>+<2B>*=<3D>*=<3D>><3E> ><3E>B<EFBFBD> <15>+<2B>.<2E>.<2E>+<2B>*=<3D>*=<3D>><3E> ><3E>B<EFBFBD><11><1E><1E>2<>2<>4<>G<EFBFBD> <0A>~<7E><1C> <0A><16>
<EFBFBD><1E> <0A> <20>
<EFBFBD> <0A>5@<40><16>5H<35><02>1<>G<EFBFBD>/<2F>/<2F>1<>'<27><14><14><19>!<21>/<2F><1D><19> 
<EFBFBD> <09><13> <1E> <1E><14>B<EFBFBD>v<EFBFBD><19>
<EFBFBD><02><12>r<EFBFBD>Z<EFBFBD> <10> <13>N<EFBFBD>N<EFBFBD>$=<3D>&)<29>#<23>d<EFBFBD>)<29>n<EFBFBD><12> <0E> %<25>-<2D>-<2D><1A><0F><0F><17>#<23> <20>)<29>  <20><12> <18><0E><0E>H<EFBFBD><1A>+<2B>+<2B>D<EFBFBD>1<>8<>8<><14>><3E>D<EFBFBD><18>K<EFBFBD>K<EFBFBD>M<EFBFBD>E<EFBFBD>$<24>-<2D>-<2D><1A><0E><0E><17>#<23>!<21>5<EFBFBD>><3E>)<29> <1F><12> <18><0E><0E>H<EFBFBD>-<12>r<EFBFBD>D<10><1B><1B>c<EFBFBD>!<21>X<EFBFBD>%9<>%9<>C<EFBFBD>%?<3F><18><14>g<EFBFBD>1<>(<28>2F<32>2F<32>1G<31><1F><08> 0<> 0<>3<> 5<>
<EFBFBD>
<EFBFBD> <0C> <0B> <0B><1D><1D><10><18><18><11> <09> <09><15>M<EFBFBD>M<EFBFBD>)<29>'<27> <1E> <06>A<EFBFBD><16> <1D> <1D> +<2B> +<2B> -<2D>A<EFBFBD>F<EFBFBD> <0C>=<3D>=<3D><11> <1B><19><19> <0C>H<EFBFBD><48>[ <16><12> <11><02><12><>8<0E><> 
<EFBFBD><EFBFBD>n<12><><0E><><0E><>-<12><>r<EFBFBD>r<EFBFBD>r<EFBFBD>s<EFBFBD><00>S)<01>R2<00>ES)<01>=S<04>>B#S)<01>!S<04>"DS)<01>%S
<06>&S)<01>)AS<03>:S <06>;A#S<03>S<06>S<03># S)<01>.S<04>/CS)<01>2 S<03>=S)<01>S<03>S)<01>S)<01>
S)<01> S<03>S<03>S)<01>S&<07>S <0C>S&<07>"S)r<>r<>c <00><00>:K<00>tjjs td<01><00>tj
j |<02>} | j}|<0E>J<00>| j<00> | j}d|_ |j<00>}| r5tjj}tjj}n"tjj|
<EFBFBD>\}}|<10>4<00>d{<00><02><03>}||| |d<03><04>4<00>d{<00><03><03>}| r| }n|j||||<06>}t|<03>\}}|j|<03><00>d{<00><04><03>}|4<00>d{<00><04><03>|j!||| <0B>|j#t%|<16><00><00>d{<00><05><03>}t'|j)<00>||<0F>ddd<00><00>d{<00><04><03>t+j*<00>}ddd<00><00>d{<00><03><03>tj,j/||j0|j2||<08><05>}ddd<00><00>d{<00><02><03>t5z
d<06>_|j7|<19>st8<00>|S7<00><01>^7<00><01>L7<00><01>7<00><01>7<00><>7<00><>#1<00>d{<00><05><03>7swY<00><>xYw7<00><>#1<00>d{<00><04><03>7swY<00><>xYw7<00>m#1<00>d{<00><03><03>7swY<00>}xYw<01>w)Nz DNS-over-HTTP3 is not available.rT)<03> verify_mode<64> server_name<6D>h3ry<00>)r,r<><00> have_quicr r<>r<>r<>r<>r<00>idr/<00> null_factory<72>factories_for_backend<6E>connectr<00> make_stream<61>send_h3<68>receiverrr<>r!r-r@r6r7r"rBr )rKrLr<>rMrrNrOr5r8r<>rPr<>r<><00> url_partsr<73>rD<00>cfactory<72>mfactory<72>context<78> the_manager<65>the_connection<6F>startr#<00>stream<61>finishrGs rr<>r<><00>s<00><00><><00> <0F>8<EFBFBD>8<EFBFBD> <1D> <1D><13>6<>7<>7<><16> <0C> <0C>%<25>%<25>c<EFBFBD>*<2A>I<EFBFBD><18>!<21>!<21>H<EFBFBD> <13> <1F><1F> <1F><10>~<7E>~<7E>!<21><18>~<7E>~<7E><04> <0C>A<EFBFBD>D<EFBFBD> <0C>9<EFBFBD>9<EFBFBD>;<3B>D<EFBFBD><11><16>8<EFBFBD>8<EFBFBD>(<28>(<28><08><16>8<EFBFBD>8<EFBFBD>(<28>(<28><08>"<22>x<EFBFBD>x<EFBFBD>=<3D>=<3D>g<EFBFBD>F<><1C><18>8<EFBFBD><17>z<EFBFBD>z<EFBFBD>W<EFBFBD><1B> <13><16>X<EFBFBD>$<24>
<EFBFBD>
<EFBFBD> <18><19>!+<2B><0E>!,<2C>!4<>!4<><19>4<EFBFBD><16><1B>"<12><0E>#1<><17>"9<> <1F>U<EFBFBD>J<EFBFBD>)<29>5<>5<>g<EFBFBD>><3E>><3E>F<EFBFBD><1D>v<EFBFBD><16><0E><0E>s<EFBFBD>D<EFBFBD>$<24>/<2F>#<23>^<5E>^<5E>J<EFBFBD>z<EFBFBD>,B<>C<>C<><04><1D>f<EFBFBD>n<EFBFBD>n<EFBFBD>.<2E><05>t<EFBFBD><<3C> <1E>v<EFBFBD>
<1A>Y<EFBFBD>Y<EFBFBD>[<5B>F<EFBFBD>!
<EFBFBD>
<EFBFBD>" <10>K<EFBFBD>K<EFBFBD> !<21> !<21> <10><15>I<EFBFBD>I<EFBFBD><19> <0A> <0A>-<2D>+<2B> "<22>
<EFBFBD><01>%<1A>z<EFBFBD>2<11><16>%<25><1E><13> %<25>A<EFBFBD>F<EFBFBD> <0C>=<3D>=<3D><11> <1B><19><19> <0C>H<EFBFBD>9<1A><>
<EFBFBD><EFBFBD>?<3F><><1D><>D<01><><1E><>v<EFBFBD>v<EFBFBD>v<EFBFBD><76>
<EFBFBD><EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD><EFBFBD><1A><>z<EFBFBD>z<EFBFBD>z<EFBFBD>s<EFBFBD><00>C(J<01>*I<06>+J<01>.J<03>?I <08>J<03><I/<05>?I<08>
I/<05>
I
<EFBFBD> I/<05>1I<07>?I
<EFBFBD>I<07> I/<05>*I<08>+I/<05> J<03>I-<06><J<03> J<01>J<04>2J<01> J<03>I/<05>I/<05>I<07>I/<05>I* <0B>I!<10>I* <0B>&I/<05>-J<03>/J <09>5I8<0E>6J <09>=J<03>J<01>J<07> J <0C> J<07>Jr<>c <00><00><>K<00>tjjs td<01><00>| <0C>| <0B>| } d|_|j <00>} |r7tjj }tjj }|}n"tjj|
<EFBFBD>\}}|<0E>4<00>d{<00><02><03>}||| | <0C><04>4<00>d{<00><03><03>}|s|j||||<05>}t|<02>\}}j|<02><00>d{<00><04><03>}|4<00>d{<00><04><03>|j| d<05><00>d{<00><05><03>|jt|<14><00><00>d{<00><05><03>} ddd<02><00>d{<00><04><03>tj<00>}ddd<02><00>d{<00><03><03>tjj!| |j"|j$||<07><06>}ddd<02><00>d{<00><02><03>t'z
d<07>_|j)|<17>st*<00>|S7<00><01>F7<00><01>57<00><>7<00><>7<00><>7<00><>7<00><>#1<00>d{<00><05><03>7swY<00><>xYw7<00><>#1<00>d{<00><04><03>7swY<00><>xYw7<00>m#1<00>d{<00><03><03>7swY<00>}xYw<01>w)aiReturn 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.
zDNS-over-QUIC is not available.Nr)r<>r<>Tryr<>)r,r<>r<>r r<>r/r<>r<>r<>rr<><00>sendr<64>rr!r-r@r6r7r"rBr )rKrLrMrrNrOr5r8r<>r<>rPr<>r<>rDr<>r<>r<>r<>r<>r<>r#r<>r<>rGs rr<>r<>s<><00><00><><00>2 <0F>8<EFBFBD>8<EFBFBD> <1D> <1D><13>5<>6<>6<><16>"<22>x<EFBFBD>'7<>"<22><08> <0C>A<EFBFBD>D<EFBFBD> <0C>9<EFBFBD>9<EFBFBD>;<3B>D<EFBFBD><11><16>8<EFBFBD>8<EFBFBD>(<28>(<28><08><16>8<EFBFBD>8<EFBFBD>(<28>(<28><08>#<23><0E>"<22>x<EFBFBD>x<EFBFBD>=<3D>=<3D>g<EFBFBD>F<><1C><18>8<EFBFBD><17>z<EFBFBD>z<EFBFBD>W<EFBFBD><1B> <13><1E>'<27>
<EFBFBD>
<EFBFBD><19><1D>!,<2C>!4<>!4<><19>4<EFBFBD><16><1B>"<12><0E>#1<><17>"9<> <1F>U<EFBFBD>J<EFBFBD>)<29>5<>5<>g<EFBFBD>><3E>><3E>F<EFBFBD><1D>v<EFBFBD><1C>k<EFBFBD>k<EFBFBD>$<24><04>-<2D>-<2D>-<2D>#<23>^<5E>^<5E>J<EFBFBD>z<EFBFBD>,B<>C<>C<><04><1E>v<EFBFBD><1A>Y<EFBFBD>Y<EFBFBD>[<5B>F<EFBFBD>
<EFBFBD>
<EFBFBD> <10>K<EFBFBD>K<EFBFBD> !<21> !<21> <10><15>I<EFBFBD>I<EFBFBD><19> <0A> <0A>-<2D>+<2B> "<22>
<EFBFBD><01>!<1A>z<EFBFBD>.<11><16>%<25><1E><13> %<25>A<EFBFBD>F<EFBFBD> <0C>=<3D>=<3D><11> <1B><19><19> <0C>H<EFBFBD>5<1A><>
<EFBFBD><EFBFBD>?<3F><><1D><>-<2D><>C<><43><1E><>v<EFBFBD>v<EFBFBD>v<EFBFBD><76>
<EFBFBD><EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD><EFBFBD><1A><>z<EFBFBD>z<EFBFBD>z<EFBFBD>s<00>B)I<01>+G1<06>,I<01>/H/<03>?G4<08>H/<03>9H<05><G7<08>=
H<05>G9
<EFBFBD>H<05> H<07>!G;
<EFBFBD>"!H<07>G=
<EFBFBD>H<07> H<05>G?<08>H<05>, H/<03>7H<06>8<H/<03>4 I<01>?H-<04>2I<01>4H/<03>7H<05>9H<05>;H<07>=H<07>?H<05>H <0B>H
<10>H <0B>H<05>H/<03>H* <09>H!<0E>H* <09>&H/<03>-I<01>/I<07>5H8 <0C>6I<07>=I<01> txn_managerr_<00>serialc <00>K<00>|jdj}|tjjk(}|j <00>}|j <00>} |jtjk(}
|
rIttjj|<01>} | j| dt|<05><00><00>d{<00><02><03>n`ttjj|<01>} t!j"dt%| <09><00>| z} | j'| |<05><00>d{<00><02><03>tj(j+||||
<EFBFBD>5}d}d}d}|s<>t-|<04>\}}|<13>|<05>||kDr|}|
r)t|<13>} j/d|<04><00>d{<00><03><03>\}}nBt1 d|<13><00>d{<00><03><03>}t!j2d|<15>\}t1| ||<13><00>d{<00><03><03>}tj4j7||j8|j:d|||
|<07><08>}|j=|<11>}|<11><04><02>|j>}|s<01><>|j8r-|<11>+|j@stjBjEd <09><00>ddd<02>y7<00><01><>7<00><01>\7<00><>7<00><>7<00><>#1swYyxYw<01>w)
z'Given a socket, does the zone transfer.rNrxFr=rjT)r6r7<00>xfr<66>origin<69>tsig_ctx<74>multir5z missing TSIG)#<23>question<6F>rdtyper,<00> rdatatype<70>IXFR<46>from_wire_originr/<00>typerrYrrU<00>DatagramSocketr0r%<00> StreamSocketrz<00>packrlrnr<><00>Inboundrr>rvr{r-r@r6rZ<00>process_messager<65><00>had_tsig<69> exception<6F> FormError)r<>r_r;r<>rMr#r<><00>is_ixfrr<72>rD<00>is_udprbrcro<00>inbound<6E>doner<65>rGr`<00> mexpiration<6F>rwirer|r}s r<00> _inbound_xfrrHs9<00><00><><00><13>^<5E>^<5E>A<EFBFBD> <1E> %<25> %<25>F<EFBFBD><14><03> <0A> <0A>*<2A>*<2A>*<2A>G<EFBFBD> <18> )<29> )<29> +<2B>F<EFBFBD> <10>=<3D>=<3D>?<3F>D<EFBFBD> <0E>V<EFBFBD>V<EFBFBD>v<EFBFBD>(<28>(<28> (<28>F<EFBFBD> <0A><17><03>(<28>(<28>7<>7<><11>;<3B><08><16>o<EFBFBD>o<EFBFBD>d<EFBFBD>D<EFBFBD>(<28>:<3A>*><3E>?<3F>?<3F>?<3F><17><03>(<28>(<28>5<>5<>q<EFBFBD>9<><08><17><1B><1B>T<EFBFBD>3<EFBFBD>t<EFBFBD>9<EFBFBD>-<2D><04>4<><06><16><1E><1E>v<EFBFBD>z<EFBFBD>2<>2<>2<> <0C><17><17><1F><1F><1B>f<EFBFBD>f<EFBFBD>f<EFBFBD> =<3D><17><14><04><17><08>(,<2C><01><16>-<2D>g<EFBFBD>6<> <1C>Q<EFBFBD> <0B><1A>"<22><1A>&<26>;<3B><1A>+C<>(<28> <0B><15>"<22>;<3B>/<2F><07>#+<2B>#4<>#4<>U<EFBFBD>G<EFBFBD>#D<>D<>
<EFBFBD><15><01>+<2B>H<EFBFBD>a<EFBFBD><1B>E<>E<><05><1D>}<7D>}<7D>T<EFBFBD>5<EFBFBD>1<><04><11>+<2B>H<EFBFBD>a<EFBFBD><1B>E<>E<><05><13> <0B> <0B>%<25>%<25><15><1D> <0A> <0A>!<21>I<EFBFBD>I<EFBFBD><18><1D>!<21>!<21>z<EFBFBD>!(<28>&<26> <0E>A<EFBFBD><1B>*<2A>*<2A>1<EFBFBD>-<2D>D<EFBFBD><13>G<EFBFBD><18>z<EFBFBD>z<EFBFBD>H<EFBFBD>3<17>4 <11>=<3D>=<3D>Q<EFBFBD>]<5D>1<EFBFBD>:<3A>:<3A><15>-<2D>-<2D>)<29>)<29>.<2E>9<> 9<>?
><3E> =<3D> @<01><> 3<><33>E<01><>E<><45>E<><45>!
><3E> =<3D>s{<00>B9J <01>;I5<04><A J <01>I8<04>&J <01>AJ<03>I;<06>J<03> I=<06>!,J<03> I?<06>A$J<03>39J<03>,
J <01>8J <01>;J<03>=J<03>?J<03>J
<07>J <01>lifetime<6D>udp_modec
<00><00><>K<00>|<02>#tjj|<01>\}}
ntjj|<02>}
tjj |<00>} t | ||<07>} ||f} | stjj<00>} t|<05>\}}|jdjtjjk(rn|tjk7r[| j!| t"j$d| | t'|<0F><00><00>d{<00><02><03>}|4<00>d{<00><02><03> t)||||
||<0F>23d{<00><05><03>}<0E>
| j!| t"j.d| | t'|<0F><00><00>d{<00><02><03>}|4<00>d{<00><02><03>t)||||
||<0F>23d{<00><04><03>}<0E>
7<00><>7<00>{7<00>c6 ddd<01><00>d{<00><02><03>7y#tjj*$r|tj,k(r<01>YnwxYwddd<01><00>d{<00><02><03>7<00><>#1<00>d{<00><03><03>7swY<00><>xYw7<00><>7<00><>7<00><>6ddd<01><00>d{<00><02><03>7y#1<00>d{<00><03><03>7swYyxYw<01>w)amConduct 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<><00>
make_query<EFBFBD>extract_serial_from_queryrRrSrrUrVrr<>r<>r<>r<>r <00>NEVERrXrrYr%r<00>UseTCP<43>ONLYr<59>)rLr<>r;rrMrrNrOrrPr<>rr]r^r`r#r_s r<00> inbound_xfrr s<><00><00><><00>* <0A>}<7D><1D>'<27>'<27>,<2C>,<2C>[<5B>9<><0F><15><06><14><17><17>2<>2<>5<EFBFBD>9<><06> <0C><18><18> <20> <20><15> '<27>B<EFBFBD> <1A>2<EFBFBD>v<EFBFBD>{<7B> 3<>F<EFBFBD><13>T<EFBFBD>]<5D>F<EFBFBD> <12><15>"<22>"<22>6<>6<>8<><07>$<24>X<EFBFBD>.<2E>O<EFBFBD>Q<EFBFBD>
<EFBFBD> <0C>~<7E>~<7E>a<EFBFBD><18><1F><1F>3<EFBFBD>=<3D>=<3D>#5<>#5<>5<>(<28>g<EFBFBD>m<EFBFBD>m<EFBFBD>:S<><19>%<25>%<25> <0E><06>!<21>!<21>1<EFBFBD>f<EFBFBD>f<EFBFBD>h<EFBFBD>z<EFBFBD>6J<36>
<EFBFBD>
<EFBFBD><01><15>1<EFBFBD> <1A>+<2B><1F><15><19><1A><1B><1E>  <12><19>!<21><19> <16>!<21>!<21>
<EFBFBD>F<EFBFBD> <1E> <1E><01>6<EFBFBD>6<EFBFBD>8<EFBFBD>J<EFBFBD>3G<33><06> <06>A<EFBFBD><11>q<EFBFBD>#<23> <17><11>E<EFBFBD>6<EFBFBD>7<EFBFBD>J<EFBFBD>
<EFBFBD> <11>!<21> <11>5
<EFBFBD><EFBFBD><15><><19><> <12><17><15>1<EFBFBD>1<EFBFBD><31><17>7<EFBFBD>7<EFBFBD>><3E>><3E> <1A><1B>w<EFBFBD>|<7C>|<7C>+<2B><19>,<2C> <1A><><15>1<EFBFBD>1<EFBFBD>1<EFBFBD>1<EFBFBD><31>  <06><><11><> <11><>
<EFBFBD><11>q<EFBFBD>q<EFBFBD>q<EFBFBD>q<EFBFBD>s&<00>DI<01>F!<04>
I<01>'F#<06>(I<01>+H<03>-F;<02>=F'<04>F%<08>F'<04>F;<02>0I<01>7H<04>8
I<01>H<06>I<01>H2<03>H<04>H<08>H<04>H2<03>!I<01>#I<01>%F'<04>'F;<02>) I<01>4F7<04>5I<01>;1G/<05>,H<03>.G/<05>/H<03>2 I<01>=H<04>>I<01>H<07>
H <0C> H<07>I<01>I<01>H<04>H2<03> I<01>+H.<04>,I<01>2I<07>8H; <0C>9I<07>I)N)
NNFFNrFFFN) NrJNrFFFFNNF) NrJNrFFFNNNF)NFNrF)NrJNrFFNN) N<>UNrFFNNNNT)
Nr<EFBFBD>NrFFTNTN) Nr
NrFFNTNNN)X<>__doc__r<5F><00>
contextlibr<EFBFBD>rrzr!<00> urllib.parser<65><00>typingrrrrr<00>dns.asyncbackendr,<00> dns.exception<6F>dns.inet<65> dns.message<67>dns.name<6D>dns.quic<69> dns.rdatatype<70>dns.transaction<6F>dns.tsig<69>dns.xfr<66>dns._asyncbackendr<00> dns.queryr r
r r r rrrrrr<00>ssl<73> ImportError<6F> dns._no_ssl<73>_no_sslr<6C>rR<00>low_level_address_tuplerTrr%rUr<>r-r.<00>bytes<65>float<61>intr3<00>bool<6F>name<6D>Name<6D>tsig<69>KeyrIr<><00>Backendrar<>rgrprvr~re<00>
SSLContextr<EFBFBD>r<><00> AF_UNSPECr<43>r<>r<>r<>r<><00> transaction<6F>TransactionManager<65>Socketrrr <00>rr<00><module>r/s4 <00><01>$<1C> <0A><11> <0A> <0A> <0A> <0B><13>3<>3<><17><14><0F><12><0F><0F><14><16><0F><0E>)<29> <02> <02> <02> <02><1E><0E> <0C><10> <0F>8<EFBFBD>8<EFBFBD> +<2B> +<2B><08> <14> <14> $<24> <1A>
<0A>
<1A>
<1A>
)<29>
)<29><1A>
<0A>+<2B>+<2B>
<1D>
<1D><05>
%<25><1A><15><1A><16><04> <0C> <1A>
 <0B>3<EFBFBD><05>:<3A><16> <1A>@#<23>#<23>#<23>"<22>8<<3C> #<23>!<21> %<25><1F>(,<2C>:0<>
<0A>
<1A>
<1A>
)<29>
)<29>:0<><14>t<EFBFBD><1A>:0<><16><04> <0C>:0<><1C> :0<>
<1B> :0<> <12>#<23>(<28>(<28>-<2D>-<2D><13><18><18><1C><1C>-<2D> .<2E><14> 5<> :0<><17><14><1C>:0<><1A>:0<><1E>:0<><18>:0<> <0F>;<3B>;<3B> <1E> <1E><14> %<25>:0<> <09>:0<>@!<21><12><1D><18>#<23>"<22>!<21> %<25>37<33>/3<><1F>?<11>
<EFBFBD>{<7B>{<7B><1A><1A>?<11> <0E>?<11><13>T<EFBFBD>\<5C>?<11> <0E> ?<11>
<10>$<24>J<EFBFBD> ?<11> <15> ?<11><1C>?<11><1B>?<11><1A>?<11><1E>?<11> <0E>
<1A>
<1A>
)<29>
)<29>D<EFBFBD>
0<EFBFBD>?<11><11> <1D> <1D> %<25> %<25><04> ,<2C>?<11><18>?<11> <09>[<5B>[<5B><18><18>?<11>J!<21><12><1D><18>#<23>"<22>!<21>7;<3B>59<35>/3<><1F>A <20>
<EFBFBD>{<7B>{<7B><1A><1A>A <20> <0E>A <20><13>T<EFBFBD>\<5C>A <20> <0E> A <20>
<10>$<24>J<EFBFBD> A <20> <15> A <20><1C>A <20><1B>A <20><1A>A <20><12><1E><1E>-<2D>-<2D><04>4<>A <20><12><1E><1E>+<2B>+<2B>d<EFBFBD>2<>A <20><11> <1D> <1D> %<25> %<25><04> ,<2C>A <20><18>A <20> <0B>3<EFBFBD>;<3B>;<3B> <1E> <1E><04> $<24>%<25>A <20>N $<24>$<24>
<0A>
<1A>
<1A>
'<27>
'<27>$<24>
<0A>+<2B>+<2B>
<1D>
<1D><05>
%<25>$<24><16><04> <0C>$<24> <0B>3<EFBFBD><05>:<3A><16> $<24>2  <0A> $<24>"<22>8<<3C> #<23>!<21> <1E>
<0A>
<1A>
<1A>
'<27>
'<27><1E><15><04> <0C><1E><1B><1E><12>#<23>(<28>(<28>-<2D>-<2D><13><18><18><1C><1C>-<2D> .<2E><14> 5<> <1E>
<17><14><1C> <1E> <1A> <1E> <0B>3<EFBFBD>;<3B>;<3B> <1E> <1E><05> %<25>&<26><1E>B!<21><12><1D><18>"<22>!<21>15<31>/3<>:<11>
<EFBFBD>{<7B>{<7B><1A><1A>:<11> <0E>:<11><13>T<EFBFBD>\<5C>:<11> <0E> :<11>
<10>$<24>J<EFBFBD> :<11> <15> :<11><1B>:<11><1A>:<11> <0E>
<1A>
<1A>
'<27>
'<27>$<24>
.<2E>:<11><11> <1D> <1D> %<25> %<25><04> ,<2C>:<11> <09>[<5B>[<5B><18><18>:<11>@!<21><13><1D><18>"<22>!<21>15<31>/3<>)-<2D>"&<26><1D>C<18>
<EFBFBD>{<7B>{<7B><1A><1A>C<18> <0E>C<18><13>T<EFBFBD>\<5C>C<18> <0E> C<18>
<10>$<24>J<EFBFBD> C<18> <15> C<18><1B>C<18><1A>C<18> <0E>
<1A>
<1A>
'<27>
'<27>$<24>
.<2E>C<18><11> <1D> <1D> %<25> %<25><04> ,<2C>C<18><15><1E><1E>$<24>&<26>C<18><19>4<EFBFBD>Z<EFBFBD>C<18> <11>3<EFBFBD>J<EFBFBD>C<18> <09>[<5B>[<5B><18><18>C<18>L <14><16>3<>4<> <14>!<21> <14>"!<21><13><1D><18>"<22>!<21>IM<49><1C><15>*.<2E>$(<28>7;<3B><18>"<22>"<22> +<2B> 3<> 3<>!m <0A>
<EFBFBD>{<7B>{<7B><1A><1A>m <0A> <0E>m <0A><13>T<EFBFBD>\<5C>m <0A> <0E> m <0A>
<10>$<24>J<EFBFBD> m <0A> <15> m <0A><1B>m <0A><1A>m <0A> <15>E<> F<>m <0A> <0E>m <0A> <0F>m <0A> <11>3<EFBFBD>J<EFBFBD><13><1E><1E> '<27>m <0A><1B>T<EFBFBD>z<EFBFBD>m <0A><17>3<>4<>m <0A> <10>m <0A> <1E>!m <0A>" <09>[<5B>[<5B><18><18>#m <0A>h!<21><13><1D><18>"<22>!<21>*.<2E>/3<><15>6:<3A>= <0A>
<EFBFBD>{<7B>{<7B><1A><1A>= <0A> <0E>= <0A>
<0A>= <0A><13>T<EFBFBD>\<5C> = <0A>
<0E> = <0A> <10>$<24>J<EFBFBD> = <0A><15>= <0A><1B>= <0A><1A>= <0A> <11>3<EFBFBD>J<EFBFBD><13><1E><1E> '<27>= <0A><11> <1D> <1D> %<25> %<25><04> ,<2C>= <0A> <0F>= <0A><14><08><08>,<2C>,<2C>t<EFBFBD>3<>= <0A> <09>[<5B>[<5B><18><18>= <0A>F!<21><13><1D><18>"<22>!<21>6:<3A><1D>/3<><1F>"&<26>C <0A>
<EFBFBD>{<7B>{<7B><1A><1A>C <0A> <0E>C <0A><13>T<EFBFBD>\<5C>C <0A> <0E> C <0A>
<10>$<24>J<EFBFBD> C <0A> <15> C <0A><1B>C <0A><1A>C <0A><14><08><08>,<2C>,<2C>t<EFBFBD>3<>C <0A> <11>3<EFBFBD>J<EFBFBD>C <0A><11> <1D> <1D> %<25> %<25><04> ,<2C>C <0A><12>D<EFBFBD>j<EFBFBD>C <0A><19>4<EFBFBD>Z<EFBFBD>C <0A> <09>[<5B>[<5B><18><18>C <0A>L4:<3A><14><1F><1F>3<>3<>4:<3A>
<EFBFBD><17><17><1E><1E>4:<3A> <0F>;<3B>;<3B> <1E> <1E>4:<3A> <10>$<24>J<EFBFBD> 4:<3A>
<13>T<EFBFBD>\<5C> 4:<3A> <16> 4:<3A> <09>4:<3A>t)-<2D><12> <20>!<21><1D><18><1F> <0A> <0A>/3<>:<11> <0E>:<11><14><1F><1F>3<>3<>:<11> <0F>;<3B>;<3B> <1E> <1E><14> %<25>:<11> <0E> :<11>
<13>T<EFBFBD>\<5C> :<11> <14>d<EFBFBD>l<EFBFBD> :<11> <10>$<24>J<EFBFBD>:<11><15>:<11><16>:<11><11> <1D> <1D> %<25> %<25><04> ,<2C>:<11>
<EFBFBD>:<11><>O<13><1E><1D><1D><1E>s<00>6\<00> \<03>\