U
    <{f<                     @   s  d Z ddlmZ ddlZddlZG dd dejjZG dd dej	j
Zeedd	d
ZeeedddZeeeef dddZdeeedddZejZejZejZejZejZejZejZejZejZejZejZejZejZej Z ej!Z!ej"Z"ej#Z#ej$Z$ej%Z%ej&Z&ej'Z'dS )zDNS Result Codes.    )TupleNc                   @   sx   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZedd Zedd ZdS )Rcoder                           	   
                              c                 C   s   dS )N   clsr   r   H/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/dns/rcode.py_maximumF   s    zRcode._maximumc                 C   s   t S )N)UnknownRcoder   r   r   r   _unknown_exception_classJ   s    zRcode._unknown_exception_classN)__name__
__module____qualname__NOERRORFORMERRSERVFAILNXDOMAINNOTIMPREFUSEDYXDOMAINYXRRSETNXRRSETNOTAUTHNOTZONE	DSOTYPENIBADVERSBADSIGBADKEYBADTIMEBADMODEBADNAMEBADALGBADTRUNC	BADCOOKIEclassmethodr   r   r   r   r   r   r      s2   
r   c                   @   s   e Zd ZdZdS )r   zA DNS rcode is unknown.N)r   r    r!   __doc__r   r   r   r   r   O   s   r   )textreturnc                 C   s
   t | S )zConvert text into an rcode.

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

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

    Returns a ``dns.rcode.Rcode``.
    )r   	from_text)r9   r   r   r   r;   S   s    
r;   )flags	ednsflagsr:   c                 C   s   | d@ |d? d@ B }t |S )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 a ``dns.rcode.Rcode``.
       r     )r   make)r<   r=   valuer   r   r   
from_flags`   s    rB   )rA   r:   c                 C   s4   | dk s| dkrt d| d@ }| d@ d> }||fS )zReturn a (flags, ednsflags) tuple which encodes the rcode.

    *value*, a ``dns.rcode.Rcode``, the rcode.

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

    Returns an ``(int, int)`` tuple.
    r   r   zrcode must be >= 0 and <= 4095r>   r?   r   )
ValueError)rA   vZevr   r   r   to_flagsp   s
    
rE   F)rA   tsigr:   c                 C   s   |r| t jkrdS t | S )zConvert rcode into text.

    *value*, a ``dns.rcode.Rcode``, the rcode.

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

    Returns a ``str``.
    r/   )r   r.   to_text)rA   rF   r   r   r   rG      s    
rG   )F)(r8   typingr   Zdns.enumZdnsZdns.exceptionenumIntEnumr   	exceptionZDNSExceptionr   strr;   intrB   rE   boolrG   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r   r   r   r   <module>   s<   5