
                            S r SSKrSSKJr  SrSrSrSrSr	Sr
S	rS
rSrSrSrSr\\\\\	\
\\\\\\S.r\R%                  5        V Vs0 s H  u  pX_M	     snn r " S S\R(                  R*                  5      rS rS rS rS rgs  snn f )zDNS Result Codes.    N   )long                     	   
      )NOERRORFORMERRSERVFAILNXDOMAINNOTIMPREFUSEDYXDOMAINYXRRSETNXRRSETNOTAUTHNOTZONEBADVERSc                       \ rS rSrSrSrg)UnknownRcodeF   zA DNS rcode is unknown. N)__name__
__module____qualname____firstlineno____doc____static_attributes__r       lib/third_party/dns/rcode.pyr   r   F   s    !r%   r   c                     U R                  5       (       a  [        U 5      nUS:  a  US::  a  U$ [        R                  U R	                  5       5      nUc  [
        eU$ )zConvert text into an rcode.

*text*, a ``text``, the textual rcode or an integer in textual form.

Raises ``dns.rcode.UnknownRcode`` if the rcode mnemonic is unknown.

Returns an ``int``.
r     )isdigitint_by_textgetupperr   )textvs     r&   	from_textr0   J   sN     ||~~I6a4iHTZZ\"AyHr%   c                 P    U S-  US-	  S-  -  nUS:  d  US:  a  [        S5      eU$ )zReturn the rcode value encoded by flags and ednsflags.

*flags*, an ``int``, the DNS flags field.

*ednsflags*, an ``int``, the EDNS flags field.

Raises ``ValueError`` if rcode is < 0 or > 4095

Returns an ``int``.
        r   r(   rcode must be >= 0 and <= 4095)
ValueError)flags	ednsflagsvalues      r&   
from_flagsr:   ^   s9     V^bE 9:EqyEDL9::Lr%   c                 b    U S:  d  U S:  a  [        S5      eU S-  n[        U S-  5      S-  nX4$ )zReturn a (flags, ednsflags) tuple which encodes the rcode.

*value*, an ``int``, the rcode.

Raises ``ValueError`` if rcode is < 0 or > 4095.

Returns an ``(int, int)`` tuple.
r   r(   r5   r2   r4   r3   )r6   r   )r9   r/   evs      r&   to_flagsr=   p   s@     qyEDL9::A	eem		"B7Nr%   c                 z    U S:  d  U S:  a  [        S5      e[        R                  U 5      nUc  [        U 5      nU$ )zConvert rcode into text.

*value*, and ``int``, the rcode.

Raises ``ValueError`` if rcode is < 0 or > 4095.

Returns a ``text``.
r   r(   r5   )r6   	_by_valuer,   str)r9   r.   s     r&   to_textrA      s>     qyEDL9::==D|5zKr%   )r#   dns.exceptiondns_compatr   r   r   r   r   r   r   r   r   r   r   r   r   r+   itemsr?   	exceptionDNSExceptionr   r0   r:   r=   rA   )xys   00r&   <module>rJ      s   $    
	






 & 'nn./.daQT./	"3==-- "($"} 0s   B