
    _?i              	          S r SSKrSSKrSSKrSSKrSSKr\R                  R                  S5      r	\R                  R                  S5      r
\	\
4S\S\R                  R                  S\R                  R                  S\R                  R                  4S	 jjr\	\
4S
\R                  R                  S\R                  R                  S\R                  R                  S\4S jjrg)zDNS Reverse Map Names.    Nzin-addr.arpa.z	ip6.arpa.text	v4_origin	v6_originreturnc                 j    [         R                  R                  U 5      n[         R                  R                  U5      (       a!  USS  Vs/ s H  n[	        U5      PM     nnUnO?[	        [
        R                  " U5      R                  5       5       Vs/ s H  owPM     nnUn [         R                  R                  SR                  [        U5      5      US9$ s  snf s  snf ! [         aC    [         R                  R                  U 5       Vs/ s H  n[	        U5      PM     Os  snf nnUn Nf = f)ay  Convert an IPv4 or IPv6 address in textual form into a Name object whose
value is the reverse-map domain name of the address.

*text*, a ``str``, is an IPv4 or IPv6 address in textual form
(e.g. '127.0.0.1', '::1')

*v4_origin*, a ``dns.name.Name`` to append to the labels corresponding to
the address if the address is an IPv4 address, instead of the default
(in-addr.arpa.)

*v6_origin*, a ``dns.name.Name`` to append to the labels corresponding to
the address if the address is an IPv6 address, instead of the default
(ip6.arpa.)

Raises ``dns.exception.SyntaxError`` if the address is badly formed.

Returns a ``dns.name.Name``.
   N.)origin)dnsipv6	inet_aton	is_mappedstrbinasciihexlifydecode	Exceptionipv4name	from_textjoinreversed)r   r   r   v6bytepartsr
   xs           S/var/www/html/livechat/backend/venv/lib/python3.13/site-packages/dns/reversename.pyfrom_addressr      s    0
XX%88b!!+-bc7374SY7E3F #H$4$4R$8$?$?$A BC B1Q BECF 88chhx7GG 4 D '*xx'9'9$'?@'?tT'?@@sB   A
C% C!C% &/C% C  C% 
C% %+D2D&%
D21D2r   c           	         U R                  U5      (       aq  U R                  U5      n SR                  [        U R                  5      5      n[
        R                  R                  [
        R                  R                  U5      5      $ U R                  U5      (       a  U R                  U5      n [        [        U R                  5      5      n/ n[        S[        U5      S5       H(  nUR                  SR                  XFUS-    5      5        M*     SR                  U5      n[
        R                  R                  [
        R                  R                  U5      5      $ [
        R                  R                  S5      e)a  Convert a reverse map domain name into textual address form.

*name*, a ``dns.name.Name``, an IPv4 or IPv6 address in reverse-map name
form.

*v4_origin*, a ``dns.name.Name`` representing the top-level domain for
IPv4 addresses, instead of the default (in-addr.arpa.)

*v6_origin*, a ``dns.name.Name`` representing the top-level domain for
IPv4 addresses, instead of the default (ip6.arpa.)

Raises ``dns.exception.SyntaxError`` if the name does not have a
reverse-map form.

Returns a ``str``.
   .r             :z"unknown reverse-map address family)is_subdomain
relativizer   r   labelsr   r   	inet_ntoar   listrangelenappendr   	exceptionSyntaxError)r   r   r   r   r&   r   is          r   
to_addressr/   E   s   , ##y)yy$++./xx!!#(("4"4T":;;			9	%	%y)ht{{+,q#f+q)ALL&QU"345 *yyxx!!#(("4"4T":;;mm''(LMMr"   )__doc__r   dns.exceptionr   dns.ipv4dns.ipv6dns.namer   r   ipv4_reverse_domainipv6_reverse_domainr   Namer   r/    r"   r   <module>r9      s   $      hh((9 hh((5 
  32#H
#Hxx}}#H xx}}#H 	XX]]	#HP  32%N
((--%Nxx}}%N xx}}%N 		%Nr"   