§
    HºiI~  ã            #       óˆ
  — d 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 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 ddlmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z' 	 ddl(Z(n# e)$ r	 ddl*m+Z( Y nw xY we&rddl,Z,ej-        j.        Z/d„ Z0dHd„Z1	 dHdej2        j3        d	ej4        j5        e6z  d
e
de7dz  dee8e7f         f
d„Z9	 	 	 	 	 	 	 	 	 	 dIdej2        j3        d
e
dz  de7dz  de:de:deej;        j<        ej=        j>        f         dz  de6dz  de:de:de:dej4        j5        dz  de
fd„Z?	 	 	 	 	 	 	 	 	 	 	 dJdej4        j5        de@de7dz  de8de@dz  de8de:de:de:de:dej2        j3        dz  d ej2        jA        dz  de:dej4        j5        fd!„ZB	 	 	 	 	 	 	 	 	 	 	 dKdej4        j5        de@de7dz  de8de@dz  de8de:de:de:d"ej2        j3        dz  d#ej2        jC        dz  d ej2        jA        dz  de:deej4        j5        e:f         fd$„ZD	 dHdej2        jC        d	ej4        j5        e6z  de7dz  dee8e7f         fd%„ZEd&„ ZF	 	 	 	 	 dLdej2        jC        de7dz  de:deej;        j<        ej=        j>        f         dz  de6dz  de:deej4        j5        e7f         fd'„ZG	 	 	 	 	 	 	 	 dMdej4        j5        de@de7dz  de8de@dz  de8de:de:dej2        jC        dz  d ej2        jA        dz  dej4        j5        fd(„ZH	 	 	 	 	 	 	 	 	 	 	 dNdej4        j5        de@de7dz  de8de@dz  de8de:de:dej2        jC        dz  d ej2        jA        dz  d+e(jI        dz  d,e@dz  d-e:e@z  dej4        j5        fd.„ZJd/ed0         dd0fd1„ZKdd2dddddd3d*d*ddejL        ejM        fdej4        j5        de@de7dz  de8de@dz  de8de:de:d4ed5         d6e@d7e:d-e:e@z  e(jI        z  d8e@dz  d/ed0         d9e8d:edej4        j5        f"d;„ZN	 	 	 	 	 	 	 	 	 	 dOdej4        j5        de@d<e@de7dz  de8de@dz  de8de:de:d-e:e@z  e(jI        z  d ej2        jA        dz  d7e:d=ejO        jP        dz  dej4        j5        fd>„ZQ	 	 	 	 	 	 	 	 	 	 	 dPdej4        j5        de@de7dz  de8de@dz  de8de:de:d=ejO        jP        dz  d-e:e@z  d ej2        jA        dz  d?e@dz  d,e@dz  dej4        j5        fd@„ZOdAejR        jS        dBej2        jT        dej4        j5        dCe8dz  de7dz  de7de
fdD„ZUdddddde!jV        dfde@dAejR        jS        dej4        j5        dz  de8de7dz  dEe7dz  de@dz  de8dFe!d ej2        jA        dz  ddfdG„ZWdS )Qz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                 óŠ   — |s|r>|€8| t           j        k    rd}n%| t           j        k    rd}nt          d| › �¦  «        ‚||fS d S )Nz0.0.0.0z::zunknown address family )ÚsocketÚAF_INETÚAF_INET6ÚNotImplementedError)ÚafÚaddressÚports      úS/home/mmwave/public_html/mmwave/venv/lib/python3.11/site-packages/dns/asyncquery.pyÚ_source_tupler   B   sf   € ð ð 
�$ð 
Øˆ?Ø•V”^Ò#Ð#Ø#��Ø•v”Ò&Ð&Ø��å)Ð*HÀBÐ*HÐ*HÑIÔIÐIØ˜ˆÐàˆtó    c                 óZ   — | �(|st          j         ¦   «         }t          | |z
  d¦  «        S d S ©Nr   )ÚtimeÚmax)Ú
expirationÚnows     r   Ú_timeoutr%   R   s5   € ØÐØð 	Ý”)‘+”+ˆCÝ�: Ñ# QÑ'Ô'Ð'àˆtr   ÚsockÚwhatÚdestinationr#   Úreturnc              ƒ   óð   K  — t          |t          j        j        ¦  «        r|                     ¦   «         }t          j        ¦   «         }|                      ||t          ||¦  «        ¦  «        ƒ d{V —†}||fS )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   [   sr   è è € õ. �$�œÔ+Ñ,Ô,ð Ø�|Š|‰~Œ~ˆÝ”	‘”€IØ�kŠk˜$ ­X°jÀ)Ñ-LÔ-LÑMÔMÐMÐMÐMÐMÐMÐM€AØˆyˆ>Ðr   Fr   Úignore_unexpectedÚone_rr_per_rrsetÚkeyringÚrequest_macÚignore_trailingÚraise_on_truncationÚignore_errorsÚqueryc              ƒ   óü  K  — d}	 |                       dt          |¦  «        ¦  «        ƒ d{V —†\  }}t          | j        |||¦  «        sŒEt	          j        ¦   «         }	 t
          j                             ||||||¬¦  «        }n[# t
          j        j        $ r6}|	r.|
�,|
 	                    |                     ¦   «         ¦  «        sY d}~ŒÃ‚ d}~wt          $ r |	rY ŒÕ‚ w xY w|	r|
�|
 	                    |¦  «        sŒô|||fS )aj  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   Téÿÿ  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ð!0Ø%)§]¢]°5½(À:Ñ:NÔ:NÑ%OÔ%OÐOÐOÐOÐOÐOÐOÑˆˆ|Ý#ØŒK˜ {Ð4Eñ
ô 
ð 	ð Ýœ	™œˆð	Ý”×%Ò%ØØØ'Ø!1Ø /Ø$7ð &ñ ô ˆAˆAøõ Œ{Ô$ð 		ð 		ð 		ð ðàÐ%Ø×)Ò)¨!¯)ª)©+¬+Ñ6Ô6ð &ð ����àøøøøÝð 	ð 	ð 	Øð Ø�àð		øøøð
 ð 	˜UÐ.°u×7HÒ7HÈÑ7KÔ7KÐ.ØØ�= ,Ð/Ð/s$   Á%B ÂCÂ+C	ÃC	Ã	CÃCé5   ÚqÚwhereÚtimeoutr   ÚsourceÚsource_portÚbackendc              ƒ   óü  K  — |                       ¦   «         }t          |¦  «        \  }}t          j                             |¦  «        }t          ||f|¦  «        }|
rt          |
¦  «        }nu|st          j                             ¦   «         }t          |||¦  «        }| 
                    ¦   «         r||f}nd}|                     |t          j        d||¦  «        ƒ d{V —†}|4 ƒd{V —†}t          ||||¦  «        ƒ d{V —† t          |||||| j        | j        ||	|| ¦  «        ƒ d{V —†\  }}}||z
  |_        |s|                      |¦  «        st(          ‚|cddd¦  «        ƒd{V —† S # 1 ƒd{V —†swxY w Y   dS )aF  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   ¶   s\  è è € ð8 �9Š9‰;Œ;€DÝ-¨gÑ6Ô6Ñ€Z�Ý	Œ×	 Ò	  Ñ	'Ô	'€BÝ˜E 4˜=¨"Ñ-Ô-€KØð 
QÝ5@ÀÑ5FÔ5Fˆˆàð 	=ÝÔ&×:Ò:Ñ<Ô<ˆGÝ˜r 6¨;Ñ7Ô7ˆØ×/Ò/Ñ1Ô1ð 	Ø˜T�]ˆFˆFàˆFØ×&Ò& r­6Ô+<¸aÀÈÑPÔPÐPÐPÐPÐPÐPÐPˆØð ð ð ð ð ð ð �QÝ�q˜$ ¨ZÑ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8Ð8Ý&1ØØØØØØŒIØŒEØØØØñ'
ô '
ð !
ð !
ð !
ð !
ð !
ð !
ÑˆˆM˜1ð  Ñ+ˆŒð ð 	 §¢¨qÑ!1Ô!1ð 	ÝÐØð)ð ð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Ã)A/E+Å+
E5Å8E5Úudp_sockÚtcp_sockc              ƒ   óÊ   K  — 	 t          | ||||||||d|	||¦  «        ƒ d{V —†}|dfS # t          j        j        $ r% t	          | ||||||||
|¦
  «
        ƒ d{V —†}|dfcY S w xY 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)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   „$) ©6A"Á!A"c              ƒ   óZ  K  — t          |t          j        j        ¦  «        r|                     d¬¦  «        }n&t          |¦  «                             dd¦  «        |z   }t          j        ¦   «         }|                      |t          ||¦  «        ¦  «        ƒ d{V —† t          |¦  «        |fS )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¢   è è € õ �$�œÔ+Ñ,Ô,ð 5Ø—’¨T�Ñ2Ô2ˆˆõ
 �T‘”×#Ò# A uÑ-Ô-°Ñ4ˆÝ”	‘”€IØ
�,Š,�v�x¨
°IÑ>Ô>Ñ
?Ô
?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ý�‰KŒK˜Ð#Ð#r   c              ƒ   óÐ   K  — d}|dk    r[|                       |t          |¦  «        ¦  «        ƒ d{V —†}|dk    rt          d¦  «        ‚|t          |¦  «        z
  }||z   }|dk    °[|S )z|Read 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  s‚   è è € ð 	€AØ
�!Š)ˆ)Ø—)’)˜E¥8¨JÑ#7Ô#7Ñ8Ô8Ð8Ð8Ð8Ð8Ð8Ð8ˆØ�Š8ˆ8Ý˜5‘/”/Ð!Ø�˜A™œ‘ˆØ�‰Eˆð �!Š)ˆ)ð €Hr   c              ƒ   ó  K  — t          | d|¦  «        ƒ d{V —†}t          j        d|¦  «        \  }t          | ||¦  «        ƒ d{V —†}t          j        ¦   «         }	t          j                             |||||¬¦  «        }
|
|	fS )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Ð4Ð4Ð4Ð4Ð4Ð4€EÝŒ=˜˜uÑ%Ô%�D€QÝ˜t Q¨
Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3€DÝ”I‘K”K€MÝŒ×ÒØØØØ)Ø'ð 	ñ 	ô 	€Að ˆ}ÐÐr   c
           	   ƒ   óÎ  K  — |                       ¦   «         }
t          |¦  «        \  }}|r*|                     ¦   «         ƒ d{V —† t          |¦  «        }n~t          j                             |¦  «        }t          |||¦  «        }||f}|	st          j         	                    ¦   «         }	|	 
                    |t          j        d|||¦  «        ƒ d{V —†}|4 ƒd{V —†}t          ||
|¦  «        ƒ d{V —† t          |||| j        | j        |¦  «        ƒ d{V —†\  }}||z
  |_        |                      |¦  «        st&          ‚|cddd¦  «        ƒd{V —† S # 1 ƒd{V —†swxY w Y   dS )aO  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   �  sN  è è € ð4 �9Š9‰;Œ;€DÝ-¨gÑ6Ô6Ñ€Z�Øð 
ð ×ÒÑ Ô Ð Ð Ð Ð Ð Ð Ð Ý5@ÀÑ5FÔ5Fˆˆõ ŒX×$Ò$ UÑ+Ô+ˆÝ˜r 6¨;Ñ7Ô7ˆØ˜�ˆØð 	=ÝÔ&×:Ò:Ñ<Ô<ˆGØ×&Ò&Ø•Ô" A v¨v°wñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ˆð ð ð ð ð ð ð ð �QÝ�q˜$ 
Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ý#.ØØØØŒIØŒEØñ$
ô $
ð 
ð 
ð 
ð 
ð 
ð 
ÑˆˆMð  Ñ+ˆŒØ�}Š}˜QÑÔð 	ÝÐØðð ð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÃA&EÅ
EÅ!EéU  TÚssl_contextÚserver_hostnameÚverifyc              ƒ   ón  K  — t          |¦  «        \  }}|rt          |¦  «        }n–|
€t          ||dudg¦  «        }
t          j                             |¦  «        }t          |||¦  «        }||f}|	st          j                             ¦   «         }	|	 	                    |t          j        d||||
|¦  «        ƒ d{V —†}|4 ƒd{V —†}t          |¦  «        }t          | |||||||||	¦
  «
        ƒ d{V —†}t          j        ¦   «         }||z
  |_        |cddd¦  «        ƒd{V —† S # 1 ƒd{V —†swxY w Y   dS )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   )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Ô6Ñ€Z�Øð 
Ý5@ÀÑ5FÔ5FˆˆàÐÝ*¨6°?È$Ð3NÐQVÐPWÑXÔXˆKÝŒX×$Ò$ UÑ+Ô+ˆÝ˜r 6¨;Ñ7Ô7ˆØ˜�ˆØð 	=ÝÔ&×:Ò:Ñ<Ô<ˆGØ×&Ò&ØÝÔØØØØØØñ	
ô 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ˆð ð ð ð ð ð ð ð �QÝ˜:Ñ&Ô&ˆÝØØØØØØØØØØñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ˆõ ”9‘;”;ˆØ  :Ñ-ˆŒØð!ð ð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÃAD$Ä$
D.Ä1D.Úresolverzdns.asyncresolver.Resolverc                 óD   — | €dd l }|j                             ¦   «         } | S 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              ƒ   óv	  K  — 	 t           j                             |¦  «        }n# t          $ r d}Y nw xY w|}|�Tt           j                             |¦  «        r5|t
          j        k    rd|› d|› |	› �}n|t
          j        k    r
d|› d|› |	› �}i }|€xt          j	         
                    |¦  «        }|j        €t          d¦  «        ‚t           j                             |j        ¦  «        r|j        }|j        |d<   |j        �|j        }|t          j        k    s|t          j        k    rét           sâ|€lt#          |¦  «        }|j        €J ‚|                     |j        |¦  «        ƒ d{V —†}t'          j        t+          |                     ¦   «         ¦  «        ¦  «        }|r.t/          |t           j        j        ¦  «        st          d¦  «        ‚|�!t/          |t           j        j        ¦  «        sJ ‚t5          | ||||||||||
|¬	¦  «        ƒ d{V —†S t           st6          ‚|r)t/          |t8          j        ¦  «        st          d
¦  «        ‚|                      ¦   «         }ddi}|t          j        t          j        fv }|t          j         t          j        fv }t           j!         "                    ¦   «         }|€d}d}n|}|}|rtG          |¦  «        }n= | $                    ¦   «         ||||||||¬¦  «        }t9          j        ||||¬¦  «        }|4 ƒd{V —†}|
rf| %                    dtM          tO          |¦  «        ¦  «        dœ¦  «         | (                    | )                    ||||¬¦  «        |¦  «        ƒ d{V —†}nptU          j+        |¦  «         ,                    d¦  «        }| -                    ¦   «         } | (                    | .                    ||d| i|¬¦  «        |¦  «        ƒ d{V —†}	 ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   |j/        dk     s|j/        dk    r!t          |› d|j/        › d|j0        ›�¦  «        ‚t           j1         2                    |j0        | j3        | j4        ||¬¦  «        }!|j5         6                    ¦   «         |!_7        |  8                    |!¦  «        str          ‚|!S )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×$Ò$ UÑ+Ô+ˆˆøÝð ð ð Øˆˆˆðøøøð €CØ	€~�#œ(×-Ò-¨eÑ4Ô4€~Ø•”ÒÐØ1˜UÐ1Ð1 TÐ1¨4Ð1Ð1ˆCˆCØ•6”?Ò"Ð"Ø3˜eÐ3Ð3 tÐ3¨TÐ3Ð3ˆCà€JØÐ å”×&Ò& sÑ+Ô+ˆØŒ?Ð"ÝÐ1Ñ2Ô2Ð2ÝŒ8×Ò˜vœÑ/Ô/ð 	9Ø &¤ÐØ)/¬ˆJ�~Ñ&ØŒ;Ð"Ø”;ˆDà•{”~Ò%Ð%Ø�Ô+Ò+Ð+µHÐ+àÐ$Ý*¨8Ñ4Ô4ˆHØ”?Ð.Ð.Ð.Ø$×1Ò1Ø” ñô ð ð ð ð ð ð ˆGõ !'¤­d°7×3DÒ3DÑ3FÔ3FÑ.GÔ.GÑ HÔ HÐØð 	Y�*Ø•C”HÔ0ñ
ô 
ð 	Yõ ÐWÑXÔXÐXØˆ~¥¨FµC´HÔ4PÑ!QÔ!Qˆ~ˆ~ˆ~ÝØØØØØØØØØØØØð
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 	
õ ð Ýˆàð J•j ­Ô):Ñ;Ô;ð JÝÐHÑIÔIÐIð �9Š9‰;Œ;€DØÐ2Ð3€Gà	�+œ.­+Ô*=Ð>Ð	>€BØ	�+œ.­+Ô*=Ð>Ð	>€BåÔ×2Ò2Ñ4Ô4€Gà€~ØˆØˆ
ˆ
àˆØ ˆ
àð 
Ý5@ÀÑ5HÔ5Hˆˆà1�G×/Ò/Ñ1Ô1Ø'ØØØØ!Ø/ØØð	
ñ 	
ô 	
ˆ	õ ÔØ˜B v¸ð
ñ 
ô 
ˆð ð ð ð ð ð ð ð �Zð ð 	Ø�NŠNà$=Ý&)­#¨d©)¬)¡n¤nðð ñô ð ð %×-Ò-Ø—’ØØ#Ø Ø)ð	  ñ ô ð ñô ð ð ð ð ð ð ˆHˆHõ Ô+¨DÑ1Ô1×8Ò8¸Ñ>Ô>ˆDØ—K’K‘M”MˆEØ$×-Ò-Ø—’ØØ#Ø! 5˜>Ø)ð	 ñ ô ð ñô ð ð ð ð ð ð ˆHð ð-ð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ðD Ô˜cÒ!Ð! XÔ%9¸CÒ%?Ð%?ÝØð 5ð 5°(Ô2Fð 5ð 5Ø (Ô 0ð5ð 5ñ
ô 
ð 	
õ 	Œ×ÒØÔØ”	Ø”MØ)Ø'ð 	ñ 	ô 	€Að Ô×+Ò+Ñ-Ô-€A„FØ�=Š=˜ÑÔð ÝÐØ€Hs   „$ ¤3²3ÌCPÐ
PÐPrÆ   r™   c              ƒ   óô  K  — t           j        j        st          d¦  «        ‚t          j                             |¦  «        }|j        }|€J ‚|j        �|j        }d| _	        |  
                    ¦   «         }|r#t           j        j        }t           j        j        }n"t           j                             |
¦  «        \  }} |¦   «         4 ƒd {V —†} |||	|d¬¦  «        4 ƒd {V —†	 }|r|}n|                     ||||¦  «        }t          |¦  «        \  }}|                     |¦  «        ƒ d {V —†}|4 ƒd {V —† |                     |||¦  «         |                     t%          |¦  «        ¦  «        ƒ d {V —†}t'          |                     ¦   «         ||¦  «         d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   t+          j        ¦   «         }d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   t           j                             || j        | j        ||¬¦  «        }d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   t5          ||z
  d¦  «        |_        |                      |¦  «        st8          ‚|S )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Ð7å”×%Ò% cÑ*Ô*€IØÔ!€HØÐÐÐØ„~Ð!ØŒ~ˆà€A„DØ�9Š9‰;Œ;€Dàð GÝ”8Ô(ˆÝ”8Ô(ˆˆå"œx×=Ò=¸gÑFÔFÑˆ�8àˆx‰zŒzð 
ð 
ð 
ð 
ð 
ð 
ð 
˜WØ�8Ø °XÀ$ð
ñ 
ô 
ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!àØð Ø!+��à!,×!4Ò!4Ø˜4 ¨ñ"ô "�õ #1°Ñ"9Ô"9ÑˆU�JØ)×5Ò5°gÑ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>ˆFØð =ð =ð =ð =ð =ð =ð =ð =à—’˜s D¨$Ñ/Ô/Ð/Ø#Ÿ^š^­J°zÑ,BÔ,BÑCÔCÐCÐCÐCÐCÐCÐC�Ý˜fŸnšnÑ.Ô.°°tÑ<Ô<Ð<ð	=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =õ
 ”Y‘[”[ˆFð!	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!õ" ŒK×!Ò!ØØ”IØœØ-Ø+ð "ñ 
ô 
ˆð%
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ2 �˜%‘ Ñ%Ô%€A„FØ�=Š=˜ÑÔð ÝÐØ€Hs\   ÃH3Ã$AG"Ä7A#F,ÆG"Æ,
F6Æ6G"Æ9F6Æ:G"ÇH3Ç"
G,	Ç,H3Ç/G,	Ç01H3È3
H=É H=r«   c              ƒ   óP  K  — t           j        j        st          d¦  «        ‚|�|€|}d| _        |                      ¦   «         }|r%t           j        j        }t           j        j        }|}n"t           j                             |
¦  «        \  }} |¦   «         4 ƒd{V —†} |||	|¬¦  «        4 ƒd{V —†	 }|s|                     ||||¦  «        }t          |¦  «        \  }}| 
                    |¦  «        ƒ d{V —†}|4 ƒd{V —† |                     |d¦  «        ƒ d{V —† |                     t          |¦  «        ¦  «        ƒ d{V —†}ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   t          j        ¦   «         }ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   t           j                             || j        | j        ||¬¦  «        }ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   t'          ||z
  d¦  «        |_        |                      |¦  «        st*          ‚|S )ai  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Ôð 7ÝÐ5Ñ6Ô6Ð6àÐ" xÐ'7Ø"ˆà€A„DØ�9Š9‰;Œ;€Dàð GÝ”8Ô(ˆÝ”8Ô(ˆØ#ˆˆå"œx×=Ò=¸gÑFÔFÑˆ�8àˆx‰zŒzð 
ð 
ð 
ð 
ð 
ð 
ð 
˜WØ�8ØØØ'ð
ñ 
ô 
ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð Øð Ø!,×!4Ò!4Ø˜4 ¨ñ"ô "�õ #1°Ñ"9Ô"9ÑˆU�JØ)×5Ò5°gÑ>Ô>Ð>Ð>Ð>Ð>Ð>Ð>ˆFØð Dð Dð Dð Dð Dð Dð Dð DØ—k’k $¨Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ø#Ÿ^š^­J°zÑ,BÔ,BÑCÔCÐCÐCÐCÐCÐCÐC�ðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dõ ”Y‘[”[ˆFð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!õ ŒK×!Ò!ØØ”IØœØ-Ø+ð "ñ 
ô 
ˆð!
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ. �˜%‘ Ñ%Ô%€A„FØ�=Š=˜ÑÔð ÝÐØ€Hs\   ÂG!Â3AFÄAEÅFÅ
E$Å$FÅ'E$Å(FÅ>G!Æ
F	ÆG!ÆF	Æ1G!Ç!
G+Ç.G+Útxn_managerr_   Úserialc                óà  K  — |j         d         j        }|t          j        j        k    }|                      ¦   «         }|                     ¦   «         }	|j        t          j	        k    }
|
rJt          t          j        j        |¦  «        }|                     |	dt          |¦  «        ¦  «        ƒ d{V —† n`t          t          j        j        |¦  «        }t!          j        dt%          |	¦  «        ¦  «        |	z   }|                     ||¦  «        ƒ d{V —† t          j                             | |||
¦  «        5 }d}d}d}|sét-          |¦  «        \  }}|�|�||k    r|}|
r/t          |¦  «        }|                     d|¦  «        ƒ d{V —†\  }}nEt1          |d|¦  «        ƒ d{V —†}t!          j        d|¦  «        \  }t1          |||¦  «        ƒ d{V —†}t          j                             ||j        |j        d|||
 |¬¦  «        }|                     |¦  «        }|W V — |j        }|¯é|j        r(|�&|j         st          j!         "                    d	¦  «        ‚ddd¦  «         dS # 1 swxY w Y   dS )
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Ô(Ò(€FØð 3Ý�Ô(Ô7¸Ñ;Ô;ˆØ�oŠo˜d D­(°:Ñ*>Ô*>Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?å�Ô(Ô5°qÑ9Ô9ˆÝ”˜T¥3 t¡9¤9Ñ-Ô-°Ñ4ˆØ×Ò˜v zÑ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ý	Œ�Š˜ f¨f°fÑ	=Ô	=ð :ÀØˆØˆØ(,ˆØð 	"Ý-¨gÑ6Ô6ÑˆQ�ØÐ"ØÐ&¨;¸Ò+CÐ+Cà(�Øð FÝ" ;Ñ/Ô/�Ø#+×#4Ò#4°U¸GÑ#DÔ#DÐDÐDÐDÐDÐDÐD‘
�˜˜å+¨H°a¸ÑEÔEÐEÐEÐEÐEÐEÐE�Ý”} T¨5Ñ1Ô1‘�Ý+¨H°a¸ÑEÔEÐEÐEÐEÐEÐEÐE�Ý”×%Ò%ØØœØ!œIØØØ!Ø!�zØ!(ð &ñ 	ô 	ˆAð ×*Ò*¨1Ñ-Ô-ˆDØˆGˆGˆGˆGØ”zˆHð3 ð 	"ð4 Œ=ð 	:˜Q˜]°1´:˜]Ý”-×)Ò)¨.Ñ9Ô9Ð9ð?:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :s   Ä5D!I#É#I'É*I'ÚlifetimeÚudp_modec
           
   ƒ   óN  K  — |€#t           j                             |¦  «        \  }}
nt           j                             |¦  «        }
t           j                             | ¦  «        }t          |||¦  «        }| |f}|	st           j                             ¦   «         }	t          |¦  «        \  }}|j
        d         j        t           j        j        k    rÑ|t          j        k    rÁ|	                     |t"          j        d||t'          |¦  «        ¦  «        ƒ d{V —†}|4 ƒd{V —† 	 t)          ||||
||¦  «        2 3 d{V —†}Œ6 	 ddd¦  «        ƒd{V —† dS # t           j        j        $ r |t          j        k    r‚ Y nw xY w	 ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   |	                     |t"          j        d||t'          |¦  «        ¦  «        ƒ d{V —†}|4 ƒd{V —† t)          ||||
||¦  «        2 3 d{V —†}Œ6 	 ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )am  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Ô9‰ˆ��å”×2Ò2°5Ñ9Ô9ˆÝ	Œ×	 Ò	  Ñ	'Ô	'€BÝ˜2˜v {Ñ3Ô3€FØ�Tˆ]€FØð 9ÝÔ"×6Ò6Ñ8Ô8ˆÝ$ XÑ.Ô.�O€Qˆ
Ø„~�aÔÔ¥3¤=Ô#5Ò5Ð5¸(ÅgÄmÒ:SÐ:SØ×%Ò%Ø•Ô! 1 f¨fµh¸zÑ6JÔ6Jñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ˆð ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ðÝ+ØØØØØØñ ô  ð ð ð ð ð ð ð ˜!ð ð ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øõ ”7”>ð ð ð Ø�wœ|Ò+Ð+Øð ,Ð+ðøøøØ+ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð  ×!Ò!Ø
�FÔ  6¨6µ8¸JÑ3GÔ3Gñô ð 	ð 	ð 	ð 	ð 	ð 	€Að ð ð ð ð ð ð ð ð Ý#Ø˜˜E 6¨7°Jñ
ô 
ð 	ð 	ð 	ð 	ð 	ð 	ð 	�!ð ð
ð 
ðð ð ñ ô ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð øøøð ð ð ð ð ð sZ   Ä!FÄ#EÄ7D?Ä=EÅ%E<Å9FÅ;E<Å<FÆ
FÆFÇ"HÇ7G?Ç=HÈ
HÈ!H)N)
NNFFNr   FFFN)NrJ   Nr   FFFFNNF)NrJ   Nr   FFFNNNF)NFNr   F)NrJ   Nr   FFNN)Nr‚   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/     sË  ðð$ Ð à €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø €€€Ø Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3à Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø )Ð )Ð )Ð )Ð )Ð )ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðØ€J€J€J€JøØð ð ð ØÐÐÐÐÐÐÐðøøøð ð Ø€L€L€Lð Œ8Ô+€ðð ð ð ð ð ð ð  $ð	ð Ø
Ô
Ô
)ðà
Œ+Ô
 Ñ
%ðð ðð ˜‘ð	ð
 ˆ3�ˆ:Ôðð ð ð ð@ #Ø#Ø#Ø"Ø8<Ø #Ø!Ø %ØØ(,ð:0ð :0Ø
Ô
Ô
)ð:0à�t‘ð:0ð ˜‘ð:0ð ð	:0ð
 ð:0ð �#”(”- ¤¤Ð-Ô.°Ñ5ð:0ð ˜‘ð:0ð ð:0ð ð:0ð ð:0ð Œ;Ô Ñ%ð:0ð 	ð:0ð :0ð :0ð :0ð@ !ØØØØ#Ø"Ø!Ø %Ø37Ø/3Øð?ð ?Ø
„{Ôð?àð?ð �T‰\ð?ð ð	?ð
 �$‰Jð?ð ð?ð ð?ð ð?ð ð?ð ð?ð Ô
Ô
)¨DÑ
0ð?ð ÔÔ%¨Ñ,ð?ð ð?ð 	„[Ôð?ð ?ð ?ð ?ðJ !ØØØØ#Ø"Ø!Ø7;Ø59Ø/3ØðA ð A Ø
„{ÔðA àðA ð �T‰\ðA ð ð	A ð
 �$‰JðA ð ðA ð ðA ð ðA ð ðA ð ÔÔ-°Ñ4ðA ð ÔÔ+¨dÑ2ðA ð ÔÔ%¨Ñ,ðA ð ðA ð ˆ3Œ;Ô Ð$Ô%ðA ð A ð A ð A ðN  $ð$ð $Ø
Ô
Ô
'ð$à
Œ+Ô
 Ñ
%ð$ð ˜‘ð$ð ˆ3�ˆ:Ôð	$ð $ð $ð $ð2ð ð ð   $Ø"Ø8<Ø #Ø!ðð Ø
Ô
Ô
'ðà˜‘ðð ðð �#”(”- ¤¤Ð-Ô.°Ñ5ð	ð
 ˜‘ðð ðð ˆ3Œ;Ô Ð%Ô&ðð ð ð ðB !ØØØØ"Ø!Ø15Ø/3ð:ð :Ø
„{Ôð:àð:ð �T‰\ð:ð ð	:ð
 �$‰Jð:ð ð:ð ð:ð ð:ð Ô
Ô
'¨$Ñ
.ð:ð ÔÔ%¨Ñ,ð:ð 	„[Ôð:ð :ð :ð :ð@ !ØØØØ"Ø!Ø15Ø/3Ø)-Ø"&ØðCð CØ
„{ÔðCàðCð �T‰\ðCð ð	Cð
 �$‰JðCð ðCð ðCð ðCð Ô
Ô
'¨$Ñ
.ðCð ÔÔ%¨Ñ,ðCð ” $Ñ&ðCð ˜4‘ZðCð �3‰JðCð 	„[ÔðCð Cð Cð CðLØÐ3Ô4ðà!ðð ð ð ð" !ØØØØ"Ø!ØIMØØØ*.Ø$(Ø7;ØÔ"Ø +Ô 3ð!mð 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ð mð mð mðh !ØØØØ"Ø!Ø*.Ø/3ØØ6:ð=ð =Ø
„{Ôð=àð=ð 
ð=ð �T‰\ð	=ð
 ð=ð �$‰Jð=ð ð=ð ð=ð ð=ð �3‰J˜œÑ'ð=ð ÔÔ%¨Ñ,ð=ð ð=ð ”Ô,¨tÑ3ð=ð 	„[Ôð=ð =ð =ð =ðF !ØØØØ"Ø!Ø6:ØØ/3ØØ"&ðCð 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ð Cð Cð CðL4:Ø”Ô3ð4:à
ÔÔð4:ð Œ;Ôð4:ð �$‰Jð	4:ð
 �T‰\ð4:ð ð4:ð 	ð4:ð 4:ð 4:ð 4:ðt )-ØØ Ø!ØØØœØ/3ð:ð :Øð:à”Ô3ð:ð Œ;Ô Ñ%ð:ð ð	:ð
 �T‰\ð:ð �d‰lð:ð �$‰Jð:ð ð:ð ð:ð ÔÔ%¨Ñ,ð:ð 
ð:ð :ð :ð :ð :ð :s   Á6A; Á;B	ÂB	