
    `                         d dl Z ddlmZ  e j        de j                  Z e j        de j                  ZdgZedd            ZdS )	    N   )	validatorz(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*$|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-\011\013\014\016-\177])*"$)z(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?$)|^\[(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\]$	localhostc                    |t           }| rd| vrdS |                     dd          \  }}t                              |          sdS t	          |                    d                    dk    rdS ||vrnt                              |          sT	 |                    d                              d          }t                              |          S # t          $ r Y dS w xY wd	S )
a  
    Validate an email address.

    This validator is based on `Django's email validator`_. Returns
    ``True`` on success and :class:`~validators.utils.ValidationFailure`
    when validation fails.

    Examples::

        >>> email('someone@example.com')
        True

        >>> email('bogus@@')
        ValidationFailure(func=email, ...)

    .. _Django's email validator:
       https://github.com/django/django/blob/master/django/core/validators.py

    .. versionadded:: 0.1

    :param value: value to validate
    :param whitelist: domain names to whitelist

    :copyright: (c) Django Software Foundation and individual contributors.
    :license: BSD
    N@Fr   zutf-8@   idnaasciiT)	domain_whitelistrsplit
user_regexmatchlenencodedomain_regexdecodeUnicodeError)value	whitelist	user_partdomain_parts       0lib/python3.11/site-packages/validators/email.pyemailr      s    : $	 Cu$$u"\\#q11I{I&& u
9G$$%%**u)##L,>,>{,K,K#	%,,V44;;GDDK%%k222 	 	 	55	4s   AC 
CC)N)	reutilsr   compile
IGNORECASEr   r   r   r        r   <module>r       s    				      RZ/
 M 
 rz0
 M   =  1 1 1 1 1 1r   