§
    YøÁi;˜  ã                   óÜ  — d dl m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mZm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 dedeee         eeef         fd	„Zd
ededefd„Zdedefd„Z  G d„ de¦  «        Z!	 	 d/dededededede!fd„Z"d0dededdfd„Z#dededededdf
d „Z$d!edefd"„Z% G d#„ d$e¦  «        Z&d1d%ed&ed'ede&fd(„Z'd)eddfd*„Z( G d+„ d,e¦  «        Z)d-ede)fd.„Z*dS )2é   )ÚEmailSyntaxError)ÚValidatedEmail)ÚEMAIL_MAX_LENGTHÚLOCAL_PART_MAX_LENGTHÚDOMAIN_MAX_LENGTHÚDOT_ATOM_TEXTÚDOT_ATOM_TEXT_INTLÚATEXT_REÚATEXT_INTL_DOT_REÚATEXT_HOSTNAME_INTLÚ
QTEXT_INTLÚDNS_LABEL_LENGTH_LIMITÚDOT_ATOM_TEXT_HOSTNAMEÚDOMAIN_NAME_REGEXÚDOMAIN_LITERAL_CHARSé    N)ÚOptionalÚTupleÚ	TypedDictÚUnionÚemailÚreturnc                 óD  — dt           dt          t           df         dt          t           t           f         fd„}dt           dt          t           t          f         fd„} || d¦  «        \  }}|                     d¦  «        rè|                     ¦   «         } ||¦  «        \  }}|sCd	„ |D ¦   «         }|r5t          d
d                     t          |¦  «        ¦  «        z   dz   ¦  «        ‚t          |d¬¦  «         d|vrt          d¦  «        ‚|                     d¦  «        }|d         dk    rt          d¦  «        ‚|dd …                              d¦  «        } ||d¦  «        \  }	}
nd }||}
}	|
                     d¦  «        r
|
dd …         }
 ||	¦  «        \  }	}||	|
|fS )NÚtextÚspecials.r   c                 óè  — d}d}d}t          | ¦  «        D ]m\  }}t          j        d| |d …         ¦  «        d         |k    r||z  }Œ2|r ||z  }|dk    r|sd}ŒD|dk    r|sd}d}ŒQd}ŒT|dk    r||z  }d}Œb||v r n||z  }Œnt          |¦  «        t          | ¦  «        k    r5d| v rt	          d	¦  «        ‚d
| v rt	          d¦  «        ‚t	          d¦  «        ‚| t          |¦  «        d …         }||fS )NFÚ ÚNFCr   ú\Tú"u   ï¼ zZThe email address has the "full-width" at-sign (@) character instead of a regular at-sign.u   ï¹«zWThe email address has the "small commercial at" character instead of a regular at-sign.z%An email address must have an @-sign.)Ú	enumerateÚunicodedataÚ	normalizeÚlenr   )r   r   Úinside_quoteÚescapedÚ	left_partÚiÚcÚ
right_parts           ú`/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/email_validator/syntax.pyÚ split_string_at_unquoted_specialz5split_email.<locals>.split_string_at_unquoted_special2   sj  € ð
 ˆØˆØˆ	Ý˜d‘O”Oð 	ð 	‰DˆAˆqõ Ô$ U¨D°°°¬HÑ5Ô5°aÔ8¸AÒ=Ð=Ø˜Q‘�	�	àð Ø˜Q‘�	Ø˜’9�9 W�9Ø"�G�GØ˜#’X�X g�Xà#(�LØ#�G�Gà#�G�GØ�c’�Ø˜Q‘�	Ø#��Ø�h��à�à˜Q‘�	�	õ
 ˆy‰>Œ>�S ™YœYÒ&Ð&ð ˜ˆ}ˆ}Ý&ð  (Fñ  Gô  Gð  Gð ˜ˆ}ˆ}Ý&ð  (Añ  Bô  Bð  Bå"Ð#JÑKÔKÐKð �#˜i™.œ.˜/˜/Ô*ˆ
à˜*Ð$Ð$ó    c           
      óN  — d}d}d}t          | ¦  «        D ]Œ\  }}|rq|r||z  }d}Œ|dk    rd}Œ|dk    rR|t          | ¦  «        dz
  k    r:t          dd                     d	„ | |dz   d …         D ¦   «         ¦  «        z   ¦  «        ‚ n||z  }Œx|d
k    r	|dk    rd}Œ‡||z  }Œ�||fS )NFr   r   Tr    r   z,Extra character(s) found after close quote: ú, c              3   ó4   K  — | ]}t          |¦  «        V — Œd S ©N©Úsafe_character_display©Ú.0r)   s     r+   ú	<genexpr>z=split_email.<locals>.unquote_quoted_string.<locals>.<genexpr>…   s-   è è € Ð:kÐ:kÐYZÕ;QÐRSÑ;TÔ;TÐ:kÐ:kÐ:kÐ:kÐ:kÐ:kr-   r   )r!   r$   r   Újoin)r   Úquotedr&   Úvaluer(   r)   s         r+   Úunquote_quoted_stringz*split_email.<locals>.unquote_quoted_strings   s  € ð
 ˆØˆØˆÝ˜d‘O”Oð 	ð 	‰DˆAˆqØð Øð Ø˜Q‘J�EØ#�G�GØ˜$’Y�YØ"�G�GØ˜#’X�XØ�C ™IœI¨™MÒ)Ð)Ý.Ð/]Ø15·²Ð:kÐ:kÐ^bÐcdÐghÑchÐciÐciÔ^jÐ:kÑ:kÔ:kÑ1kÔ1kñ0lñ mô mð mà�Eà˜Q‘J�E�EØ�a’�˜A šH˜HØ��à˜‘
��à�fˆ}Ðr-   )ú@ú<r<   c                 ól   — h | ]1}t          j        |¦  «        s|d k    s|dk    ¯"t          |¦  «        ’Œ2S )ú ú.©r
   Úmatchr3   r4   s     r+   ú	<setcomp>zsplit_email.<locals>.<setcomp>¡   sM   € ð ð ð àÝ œ qÑ)Ô)ðð /0°3ªh¨h¸1Àº8¸8õ ' qÑ)Ô)à;C¸8¸8r-   z>The display name contains invalid characters when not quoted: r/   r?   T©Úallow_spaceú>zoAn open angle bracket at the start of the email address has to be followed by a close angle bracket at the end.r>   éÿÿÿÿz0There can't be anything after the email address.r   )r;   r;   )	Ústrr   ÚboolÚ
startswithÚrstripr   r7   ÚsortedÚcheck_unsafe_chars)r   r,   r:   r'   r*   Údisplay_nameÚdisplay_name_quotedÚ	bad_charsÚ	addr_specÚ
local_partÚdomain_partÚis_quoted_local_parts               r+   Úsplit_emailrT      sX  € ðH?%­sð ?%½eÅCÈÀH¼oð ?%ÕRWÕX[Õ]`ÐX`ÔRað ?%ð ?%ð ?%ð ?%ðB¥Cð ­Eµ#µt°)Ô,<ð ð ð ð ð< =Ð<¸UÀJÑOÔOÑ€Iˆzð ×Ò˜SÑ!Ô!ð '8à×$Ò$Ñ&Ô&ˆ	ð -BÐ,AÀ)Ñ,LÔ,LÑ)ˆÐ)ð #ð 	Nðð à%ðñ ô ˆIð
 ð NÝ&Ð'gÐjn×jsÒjsÕtzð  |Eñ  uFô  uFñ  kGô  kGñ  (Gð  JMñ  (Mñ  Nô  Nð  Nõ 	˜<°TÐ:Ñ:Ô:Ð:ð �jÐ Ð Ý"ð  $Uñ  Vô  Vð  VØ×&Ò& sÑ+Ô+ˆ
Ø�bŒ>˜SÒ Ð Ý"Ð#UÑVÔVÐVð ˜q˜r˜r”N×)Ò)¨#Ñ.Ô.ˆ	ð #CÐ"BÀ9ÈfÑ"UÔ"UÑˆ
�K�Kð
 ˆØ"+¨Z�Kˆ
à×Ò˜cÑ"Ô"ð &Ø! ! " "”oˆð (=Ð'<¸ZÑ'HÔ'HÑ$€JÐ$à˜ [Ð2FÐFÐFr-   ÚaddrÚlimitc                 óL   — t          | ¦  «        |z
  }|dk    rdnd}d|› d|› d�S )zEHelper function to return an error message related to invalid length.r   Úsr   ú(ú
 characterú
 too many))r$   )rU   rV   ÚdiffÚsuffixs       r+   Úget_length_reasonr^   É   s<   € åˆt‰9Œ9�uÑ€DØ˜1’H�HˆSˆS "€FØ1ˆtÐ1Ð1˜vÐ1Ð1Ð1Ð1r-   r)   c                 óV  — | dk    rd| › d�S t          j        | ¦  «        d         dv rt          | ¦  «        S t          | ¦  «        dk     r&dt          | ¦  «        d›�                     ¦   «         }n%dt          | ¦  «        d›�                     ¦   «         }t          j        | |¦  «        S )	Nr   r    r   ©ÚLÚNÚPÚSiÿÿ  zU+Ú04xÚ08x)r"   ÚcategoryÚreprÚordÚupperÚname)r)   Úhs     r+   r3   r3   Ð   s¬   € àˆD‚y€yØ�AˆzˆzˆzÐÝÔ˜AÑÔ˜qÔ!Ð%9Ð9Ð9Ý�A‰wŒwˆõ ˆ1�v„v�‚€Ø•�Q‘”ÐÐÐ×#Ò#Ñ%Ô%ˆˆà•�Q‘”ÐÐÐ×#Ò#Ñ%Ô%ˆõ Ô˜A˜qÑ!Ô!Ð!r-   c                   ó:   — e Zd ZU eed<   ee         ed<   eed<   dS )ÚLocalPartValidationResultrQ   Úascii_local_partÚsmtputf8N)Ú__name__Ú
__module__Ú__qualname__rG   Ú__annotations__r   rH   © r-   r+   rn   rn   á   s2   € € € € € € Ø€O€O�OØ˜s”mÐ#Ð#Ñ#Ø€N€N�N€N€Nr-   rn   TFÚlocalÚallow_smtputf8Úallow_empty_localÚquoted_local_partÚstrictc                 óÐ  — t          | ¦  «        dk    r|st          d¦  «        ‚| | ddœS |rAt          | ¦  «        t          k    r)t          | t          ¬¦  «        }t          d|› d�¦  «        ‚t	          j        | ¦  «        r| | ddœS d}d}t          j        | ¦  «        rY|sRd	„ | D ¦   «         }|r5t          d
d                     t          |¦  «        ¦  «        z   dz   ¦  «        ‚t          d¦  «        ‚d}d}nŽ|rŒd„ | D ¦   «         }|r5t          dd                     t          |¦  «        ¦  «        z   dz   ¦  «        ‚d„ | D ¦   «         }|r9d}|s5t          d
d                     t          |¦  «        ¦  «        z   dz   ¦  «        ‚d}|rzt          | |dk    ¬¦  «         	 |  
                    d¦  «         n"# t          $ r}	t          d¦  «        |	‚d}	~	ww xY w|dk    rdt          j        dd| ¦  «        z   dz   } | |s| nd|dœS d„ | D ¦   «         }|r5t          dd                     t          |¦  «        ¦  «        z   dz   ¦  «        ‚t          | ddd¬¦  «         t          d¦  «        ‚)z;Validates the syntax of the local part of an email address.r   z*There must be something before the @-sign.F)rQ   ro   rp   ©rV   z0The email address is too long before the @-sign r?   Nc                 óT   — h | ]%}t          j        |¦  «        °t          |¦  «        ’Œ&S ru   r@   r4   s     r+   rB   z,validate_email_local_part.<locals>.<setcomp>"  s@   € ð ð ð àÝ”~ aÑ(Ô(ðÝ& qÑ)Ô)ðð ð r-   zBInternationalized characters before the @-sign are not supported: r/   zAInternationalized characters before the @-sign are not supported.zdot-atomTc                 óT   — h | ]%}t          j        |¦  «        °t          |¦  «        ’Œ&S ru   )r   rA   r3   r4   s     r+   rB   z,validate_email_local_part.<locals>.<setcomp>:  sA   € ð 
ð 
ð 
àÝÔ# AÑ&Ô&ð
Ý" 1Ñ%Ô%ð
ð 
ð 
r-   zKThe email address contains invalid characters in quotes before the @-sign: c                 ód   — h | ]-}d t          |¦  «        cxk    rdk    °n t          |¦  «        ’Œ.S )é    é~   )ri   r3   r4   s     r+   rB   z,validate_email_local_part.<locals>.<setcomp>C  sO   € ð 
ð 
ð 
àØ�#˜a™&œ&Ð'Ð'Ò'Ð' CÒ'Ð'Ð'Ð'õ # 1Ñ%Ô%à'Ð'Ð'r-   r8   rC   Úutf8z0The email address contains an invalid character.r    z(["\\])z\\\1c                 óT   — h | ]%}t          j        |¦  «        °t          |¦  «        ’Œ&S ru   )r   rA   r3   r4   s     r+   rB   z,validate_email_local_part.<locals>.<setcomp>w  sA   € ð ð ð àÝ Ô& qÑ)Ô)ðÝ˜qÑ!Ô!ðð ð r-   zAThe email address contains invalid characters before the @-sign: z(An email address cannot start with a {}.z@An email address cannot have a {} immediately before the @-sign.©Úis_hostnamez@The email address contains invalid characters before the @-sign.)r$   r   r   r^   r   rA   r	   r7   rK   rL   ÚencodeÚ
ValueErrorÚreÚsubÚcheck_dot_atom)
rv   rw   rx   ry   rz   ÚreasonÚvalidÚrequires_smtputf8rO   Úes
             r+   Úvalidate_email_local_partr�   ç   s8  € õ ˆ5�z„z�Q‚€Ø ð 	QÝ"Ð#OÑPÔPÐPð
  Ø %Øð
ð 
ð 	
ð ð ]•#�e‘*”*Õ4Ò4Ð4Ý" 5Õ0EÐFÑFÔFˆÝÐ[ÐRXÐ[Ð[Ð[Ñ\Ô\Ð\õ Ô˜5Ñ!Ô!ð 
ð  Ø %Øð
ð 
ð 	
ð  €EØÐÝÔ Ñ&Ô&ð 4àð 	hðð àðñ ô ˆIð
 ð RÝ&Ð'kÐnr×nwÒnwÕx~ð  @Iñ  yJô  yJñ  oKô  oKñ  (Kð  NQñ  (Qñ  Rô  Rð  Rõ #Ð#fÑgÔgÐgð ˆØ ÐÐð 
ð ð

ð 
àð
ñ 
ô 
ˆ	ð
 ð 	WÝ"Ð#pÐsw×s|Òs|õ  ~Dð  ENñ  ~Oô  ~Oñ  tPô  tPñ  $Pð  SVñ  $Vñ  Wô  Wð  Wð
ð 
àð
ñ 
ô 
ˆ	ð
 ð 	RØ $Ðð "ð RÝ&Ð'kÐnr×nwÒnwÕx~ð  @Iñ  yJô  yJñ  oKô  oKñ  (Kð  NQñ  (Qñ  Rô  Rð  Rð ˆð ð 
õ 	˜5¨u¸Ò/@ÐBÑBÔBÐBð
	^Ø�LŠL˜Ñ Ô Ð Ð øÝð 	^ð 	^ð 	^Ý"Ð#UÑVÔVÐ\]Ð]øøøøð	^øøøð �HÒÐØ�"œ& ¨W°eÑ<Ô<Ñ<¸sÑBˆEð  Ø->Ð H  ÀDØ)ð
ð 
ð 	
ðð àðñ ô €Ið
 ð IÝÐbÐei×enÒenÕouÐvñ  pAô  pAñ  fBô  fBñ   Bð  EHñ   Hñ  Iô  Ið  	Iõ �5ÐDð  GIð  W\ð  ]ñ  ]ô  ]ð  ]õ Ð]Ñ
^Ô
^Ð^s   ÆF5 Æ5
GÆ?GÇGrX   rD   c           	      óJ  — t          ¦   «         }t          | ¦  «        D ]Ã\  }}t          j        |¦  «        }|d         dv rŒ$|d         dk    r|dk    r|                     |¦  «         ŒL|dk    r|s|                     |¦  «         Œj|d         dk    r|                     |¦  «         ŒŒ|d         dk    r|                     |¦  «         Œ®|                     |¦  «         ŒÄ|r?t          dd                     d	„ t          |¦  «        D ¦   «         ¦  «        z   d
z   ¦  «        ‚d S )Nr   r`   ÚMÚZsÚZÚCz.The email address contains unsafe characters: r/   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r1   r2   r4   s     r+   r6   z%check_unsafe_chars.<locals>.<genexpr>¹  s+   è è € Ð*`Ð*`ÈÕ+AÀ!Ñ+DÔ+DÐ*`Ð*`Ð*`Ð*`Ð*`Ð*`r-   r?   )Úsetr!   r"   rg   Úaddr   r7   rK   )rX   rD   rO   r(   r)   rg   s         r+   rL   rL   ˆ  sd  € õ ‘”€IÝ˜!‘”ð *ð *‰ˆˆ1ÝÔ'¨Ñ*Ô*ˆØ�AŒ;Ð.Ð.Ð.àØ�aŒ[˜CÒÐð
 �AŠvˆvØ—’˜aÑ Ô Ð øØ˜ÒÐð ð !Ø—’˜aÑ Ô Ð øØ�aŒ[˜CÒÐð
 �MŠM˜!ÑÔÐÐØ�aŒ[˜CÒÐð �MŠM˜!ÑÔÐÐð �MŠM˜!ÑÔÐÐØð hÝÐOØ!%§¢Ð*`Ð*`ÍfÐU^ÑN_ÔN_Ð*`Ñ*`Ô*`Ñ!`Ô!`ñ aØcfñ gñ hô hð 	hðhð hr-   ÚlabelÚstart_descrÚ	end_descrr…   c                 ó  — |                       d¦  «        r"t          |                     d¦  «        ¦  «        ‚|                      d¦  «        r"t          |                     d¦  «        ¦  «        ‚d| v rt          d¦  «        ‚|r…|                       d¦  «        r"t          |                     d¦  «        ¦  «        ‚|                      d¦  «        r"t          |                     d¦  «        ¦  «        ‚d| v sd| v rt          d	¦  «        ‚d S d S )
Nr?   Úperiodz..z2An email address cannot have two periods in a row.ú-Úhyphenz.-z-.zFAn email address cannot have a period and a hyphen next to each other.)Úendswithr   ÚformatrI   )r˜   r™   rš   r…   s       r+   rŠ   rŠ   ¼  s  € à‡~‚~�cÑÔð ;Ý˜y×/Ò/°Ñ9Ô9Ñ:Ô:Ð:Ø×Ò˜ÑÔð =Ý˜{×1Ò1°(Ñ;Ô;Ñ<Ô<Ð<Øˆu€}€}ÝÐSÑTÔTÐTàð mà�>Š>˜#ÑÔð 	?Ý" 9×#3Ò#3°HÑ#=Ô#=Ñ>Ô>Ð>Ø×Ò˜CÑ Ô ð 	AÝ" ;×#5Ò#5°hÑ#?Ô#?Ñ@Ô@Ð@Ø�5ˆ=ˆ=˜D E˜M˜MÝ"Ð#kÑlÔlÐlðmð mð *˜Mr-   Úcharc                 óª  — t          | ¦  «        }d|cxk    rdk    rn ndS d|cxk    rdk    r"n nd|cxk    rdk    sn d|cxk    rd	k    r&n n#|d
v sd|cxk    rdk    sn d|cxk    rdk    rn ndS t          j        t          |¦  «        ¦  «        dv rdS dt          j        t          |¦  «        ¦  «                             d¦  «        v rdS dS )Né€   éŸ   Fi   i`   i$   i&   i(   i.   )é­   id   iÿ  i   i   i ¼ i£¼ T)ÚCfÚCnÚCoÚCsr’   ÚZlÚZpÚ002Er>   )ri   r"   rg   ÚchrÚdecompositionÚsplit)r¡   r)   s     r+   Úuts46_valid_charr°   Ï  sE  € õ
 	ˆD‰	Œ	€AØˆqÐÐÒÐ�DÒÐÐÐÐàˆuØ�QÐ Ð Ò Ð ˜&Ò Ð Ð Ð Ð ¨&°AÐ*?Ð*?Ò*?Ð*?¸Ò*?Ð*?Ð*?Ð*?È&ÐTUÐJ_ÐJ_ÒJ_ÐJ_ÐY_ÒJ_ÐJ_ÐJ_ÐJ_ÐJ_ØÐ*Ð*Ð*Ø�qÐ"Ð"Ò"Ð"˜FÒ"Ð"Ð"Ð"Ø˜Ð$Ð$Ò$Ð$˜WÒ$Ð$Ð$Ð$Ð$ð ˆtÝ	Ô	�c !™fœfÑ	%Ô	%Ð)SÐ	SÐ	Sð ˆuØ	•;Ô,­S°©V¬VÑ4Ô4×:Ò:¸3Ñ?Ô?Ð	?Ð	?àˆuØˆ4r-   c                   ó$   — e Zd ZU eed<   eed<   dS )ÚDomainNameValidationResultÚascii_domainÚdomainN)rq   rr   rs   rG   rt   ru   r-   r+   r²   r²   í  s%   € € € € € € ØÐÐÑØ€K€K�K€K€Kr-   r²   r´   Útest_environmentÚglobally_deliverablec                 ó¬  — d„ | D ¦   «         }|r5t          dd                     t          |¦  «        ¦  «        z   dz   ¦  «        ‚t          | ¦  «         d„ | D ¦   «         }|r5t          dd                     t          |¦  «        ¦  «        z   dz   ¦  «        ‚| }	 t	          j        | dd¬¦  «        } n+# t          j        $ r}t          d|› d	�¦  «        |‚d
}~ww xY wd„ | D ¦   «         }|r5t          dd                     t          |¦  «        ¦  «        z   dz   ¦  «        ‚t          | ddd¬¦  «         |                      d¦  «        D ]1}t          j
        d|t          j        ¦  «        rt          d¦  «        ‚Œ2t          j
        | ¦  «        r| }n‚	 d                     d„ |                      d¦  «        D ¦   «         ¦  «        }n+# t          j        $ r}t          d|› d	�¦  «        |‚d
}~ww xY wt          j
        |¦  «        st          d¦  «        ‚t          |¦  «        t          k    rf||k    r)t          |t          ¬¦  «        }t          d|› d�¦  «        ‚t          |¦  «        t          z
  }	|	dk    rdnd}
t          d|	› d|
› d�¦  «        ‚|                     d¦  «        D ]C}t          |¦  «        t           k    r)t          |t           ¬¦  «        }t          d|› d�¦  «        ‚ŒD|r>d|vr|dk    r|st          d ¦  «        ‚t#          j        |¦  «        st          d!¦  «        ‚dd"lm} |D ]8}|dk    r|rŒ||k    s|                     d|z   ¦  «        rt          d#¦  «        ‚Œ9	 t	          j        |                     d$¦  «        ¦  «        }n+# t          j        $ r}t          d%|› d	�¦  «        |‚d
}~ww xY wd&„ |D ¦   «         }|r5t          dd                     t          |¦  «        ¦  «        z   dz   ¦  «        ‚t          |¦  «         	 t	          j        |¦  «         n+# t          j        $ r}t          d'|› d	�¦  «        |‚d
}~ww xY w||d(œS ))z<Validates the syntax of the domain part of an email address.c                 óT   — h | ]%}t          j        |¦  «        °t          |¦  «        ’Œ&S ru   ©r   rA   r3   r4   s     r+   rB   z-validate_email_domain_name.<locals>.<setcomp>÷  óA   € ð ð ð àÝ"Ô(¨Ñ+Ô+ðÝ˜qÑ!Ô!ðð ð r-   z7The part after the @-sign contains invalid characters: r/   r?   c                 óJ   — h | ] }t          |¦  «        °t          |¦  «        ’Œ!S ru   )r°   r3   r4   s     r+   rB   z-validate_email_domain_name.<locals>.<setcomp>  s>   € ð ð ð Ø&'Ý Ñ"Ô"ðÝ˜qÑ!Ô!ðð ð r-   F)Ú
std3_rulesÚtransitionalz7The part after the @-sign contains invalid characters (ú).Nc                 óT   — h | ]%}t          j        |¦  «        °t          |¦  «        ’Œ&S ru   r¹   r4   s     r+   rB   z-validate_email_domain_name.<locals>.<setcomp>  rº   r-   zSThe part after the @-sign contains invalid characters after Unicode normalization: z?An email address cannot have a {} immediately after the @-sign.z&An email address cannot end with a {}.Tr„   z
(?!xn)..--z€An email address cannot have two letters followed by two dashes immediately after the @-sign or after a period, except Punycode.c              3   ód   K  — | ]+}t          j        |¦  «                             d ¦  «        V — Œ,dS )ÚasciiN)ÚidnaÚalabelÚdecode)r5   r˜   s     r+   r6   z-validate_email_domain_name.<locals>.<genexpr>G  sN   è è € ð $ð $àõ ”˜EÑ"Ô"×)Ò)¨'Ñ2Ô2ð$ð $ð $ð $ð $ð $r-   z&The part after the @-sign is invalid (zSThe email address contains invalid characters after the @-sign after IDNA encoding.r|   z/The email address is too long after the @-sign r   r   rX   z0The email address is too long after the @-sign (ú bytez too many after IDNA encoding).zDAfter the @-sign, periods cannot be separated by so many characters Útestz@The part after the @-sign is not valid. It should have a period.zRThe part after the @-sign is not valid. It is not within a valid top-level domain.)ÚSPECIAL_USE_DOMAIN_NAMESz[The part after the @-sign is a special-use or reserved name that cannot be used with email.rÁ   z-The part after the @-sign is not valid IDNA (c                 óT   — h | ]%}t          j        |¦  «        °t          |¦  «        ’Œ&S ru   r¹   r4   s     r+   rB   z-validate_email_domain_name.<locals>.<setcomp>�  rº   r-   zXThe part after the @-sign became invalid after normalizing to international characters ()r³   r´   )r   r7   rK   rL   rÂ   Úuts46_remapÚ	IDNAErrorrŠ   r¯   rˆ   rA   ÚIr   r$   r   r^   r   r   Úsearchr   rÇ   rŸ   rÄ   r†   )r´   rµ   r¶   rO   Úoriginal_domainrŽ   r˜   r³   r‹   r\   rX   rÇ   ÚdÚdomain_i18ns                 r+   Úvalidate_email_domain_namerÐ   ò  sQ  € ð
ð àðñ ô €Ið
 ð ÝÐXÐ[_×[dÒ[dÕekÐluÑevÔevÑ[wÔ[wÑwÐz}Ñ}Ñ~Ô~Ð~õ �vÑÔÐðð Ø+1ðñ ô €Ið ð ÝÐXÐ[_×[dÒ[dÕekÐluÑevÔevÑ[wÔ[wÑwÐz}Ñ}Ñ~Ô~Ð~ð €OðgÝÔ! &°UÈÐOÑOÔOˆˆøÝŒ>ð gð gð gÝÐ^ÐYZÐ^Ð^Ð^Ñ_Ô_ÐefÐføøøøðgøøøð
ð àðñ ô €Ið
 ð [ÝÐtÐw{÷  xAò  xAõ  BHð  IRñ  BSô  BSñ  xTô  xTñ   Tð  WZñ   Zñ  [ô  [ð  	[õ �6Ð\ð  _Gð  UYð  Zñ  Zô  Zð  Zð —’˜cÑ"Ô"ð gð gˆÝŒ8�M 5­"¬$Ñ/Ô/ð 	gÝ"ð  $fñ  gô  gð  gð	gõ Ô# FÑ+Ô+ð zàˆˆð	ZØŸ8š8ð $ð $à#Ÿ\š\¨#Ñ.Ô.ð$ñ $ô $ñ ô ˆLˆLøõ Œ~ð 	Zð 	Zð 	Zå"Ð#QÈAÐ#QÐ#QÐ#QÑRÔRÐXYÐYøøøøð	Zøøøõ &Ô+¨LÑ9Ô9ð 	zÝ"Ð#xÑyÔyÐyõ ˆ<ÑÔÕ,Ò,Ð,Ø˜?Ò*Ð*Ý& |Õ;LÐMÑMÔMˆFÝ"Ð#^ÐU[Ð#^Ð#^Ð#^Ñ_Ô_Ð_å�|Ñ$Ô$Õ'8Ñ8ˆDØ˜a’i�i�� SˆAÝ"ð  $DÐVZð  $Dð  $DÐabð  $Dð  $Dð  $Dñ  Eô  Eð  Eð ×#Ò# CÑ(Ô(ð uð uˆÝˆu‰:Œ:Õ.Ò.Ð.Ý& uÕ4JÐKÑKÔKˆFÝ"Ð#sÐjpÐ#sÐ#sÐ#sÑtÔtÐtð /ð ð yð �lÐ"Ð"¨L¸FÒ,BÐ,BÐGWÐ,BÝ"Ð#eÑfÔfÐfõ !Ô'¨Ñ5Ô5ð 	yÝ"Ð#wÑxÔxÐxð +Ð*Ð*Ð*Ð*Ð*Ø%ð Bð Bˆà�Š;ˆ;Ð+ˆ;Øà˜1ÒÐ × 5Ò 5°c¸A±gÑ >Ô >ÐÝ"ð  $Añ  Bô  Bð  Bð ð]Ý”k ,×"5Ò"5°gÑ">Ô">Ñ?Ô?ˆˆøÝŒ>ð ]ð ]ð ]ÝÐTÈqÐTÐTÐTÑUÔUÐ[\Ð\øøøøð]øøøðð àðñ ô €Ið
 ð ÝÐXÐ[_×[dÒ[dÕekÐluÑevÔevÑ[wÔ[wÑwÐz}Ñ}Ñ~Ô~Ð~Ý�{Ñ#Ô#Ð#ðHÝŒ�KÑ Ô Ð Ð øÝŒ>ð Hð Hð HÝÐÐz{ÐÐÐñ  Aô  Að  GHð  	HøøøøðHøøøð %Øðð ð s`   ÂB1 Â1CÃ CÃCÆ2G ÇG,ÇG'Ç'G,Í+'N ÎN;Î"N6Î6N;ÐP& Ð&QÐ5Q	Ñ	QÚaddrinfoc                 ó.  — | j         d f| j        df| j        p| j        pddz   | j        z   dfg}|D ]ã\  }}t          |¦  «        }t          |                     d¦  «        ¦  «        }|t          z
  }|dk    r�|€||k    rt          |t          ¬¦  «        }nk|€St          d„ |D ¦   «         ¦  «        }t          d	||z  ¦  «        }|d	k    rd
nd}	||k    r
d|› d|	› d�}n#d|› d|› d|	› d�}n|d	k    rd
nd}	|d|› d|	› d�z  }t          d|› d�¦  «        ‚Œäd S )Nzafter normalizationr   r;   z9when the part after the @-sign is converted to IDNA ASCIIr‚   r   r|   c              3   óZ   K  — | ]&}t          |                     d ¦  «        ¦  «        V — Œ'dS )r‚   N)r$   r†   r4   s     r+   r6   z(validate_email_length.<locals>.<genexpr>è  s6   è è € Ð?Ð?°Q�3˜qŸxšx¨Ñ/Ô/Ñ0Ô0Ð?Ð?Ð?Ð?Ð?Ð?r-   r   rX   rY   rZ   r[   r�   z (rÅ   zThe email address is too long r?   )ÚoriginalÚ
normalizedro   rQ   r³   r$   r†   r   r^   Úmaxr   )
rÑ   Úaddresses_to_checkrU   r‹   Úaddr_lenÚaddr_utf8_lenr\   ÚmbpcÚmcharsr]   s
             r+   Úvalidate_email_lengthrÜ   ¹  s­  € ð2 
Ô	˜DÐ!Ø	Ô	Ð3Ð4Ø
Ô
#Ð
@ xÔ':Ð
@¸bÀCÑ	GÈ(ÔJ_Ñ	_ð  b]ð  	^ðÐð +ð Oð O‰ˆˆfÝ�t‘9”9ˆÝ˜DŸKšK¨Ñ/Ô/Ñ0Ô0ˆØÕ/Ñ/ˆØ�!Š8ˆ8Øˆ~ (¨mÒ";Ð";õ +¨4Õ7GÐHÑHÔH��Ø�õ Ð?Ð?¸$Ð?Ñ?Ô?Ñ?Ô?�Ý˜Q ¨¡Ñ-Ô-�Ø $ q¢ ˜˜¨b�Ø˜T’>�>ØC ÐCÐC°ÐCÐCÐC�F�FàL ÐLÐL¨$ÐLÐL¸&ÐLÐLÐL�F�Fð
 !% q¢ ˜˜¨b�ØÐ<˜tÐ<Ð<¨&Ð<Ð<Ð<Ñ<�Ý"Ð#MÀFÐ#MÐ#MÐ#MÑNÔNÐNð5 ð	Oð Or-   c                   óH   — e Zd ZU eej        ej        f         ed<   eed<   dS )ÚDomainLiteralValidationResultÚdomain_addressr´   N)	rq   rr   rs   r   Ú	ipaddressÚIPv4AddressÚIPv6Addressrt   rG   ru   r-   r+   rÞ   rÞ   ø  s5   € € € € € € Ø˜)Ô/°Ô1FÐFÔGÐGÐGÑGØ€K€K�K€K€Kr-   rÞ   Údomain_literalc                 óN  — t          j        d| ¦  «        rE	 t          j        | ¦  «        }n&# t          $ r}t          d|› d�¦  «        |‚d }~ww xY w|d|› d�dœS |                      d¦  «        rR	 t          j        | dd …         ¦  «        }n&# t          $ r}t          d	|› d
�¦  «        |‚d }~ww xY w|d|j        › d�dœS d| vrt          d¦  «        ‚d„ | D ¦   «         }|r5t          dd 	                    t          |¦  «        ¦  «        z   dz   ¦  «        ‚t          d¦  «        ‚)Nz
^[0-9\.]+$zRThe address in brackets after the @-sign is not valid: It is not an IPv4 address (z') or is missing an address literal tag.ú[ú])rß   r´   zIPv6:é   z<The IPv6 address in brackets after the @-sign is not valid (r¾   z[IPv6:ú:z\The part after the @-sign in brackets is not an IPv4 address and has no address literal tag.c                 óT   — h | ]%}t          j        |¦  «        °t          |¦  «        ’Œ&S ru   )r   rA   r3   r4   s     r+   rB   z0validate_email_domain_literal.<locals>.<setcomp>,  sA   € ð ð ð àÝ#Ô)¨!Ñ,Ô,ðÝ˜qÑ!Ô!ðð ð r-   zCThe part after the @-sign contains invalid characters in brackets: r/   r?   zNThe part after the @-sign contains an invalid address literal tag in brackets.)rˆ   rA   rà   rá   r‡   r   rI   râ   Ú
compressedr7   rK   )rã   rU   rŽ   rO   s       r+   Úvalidate_email_domain_literalrë   ý  s÷  € õ 
„x�˜~Ñ.Ô.ð 

ð	kÝÔ(¨Ñ8Ô8ˆDˆDøÝð 	kð 	kð 	kÝ"ð  $cÐxyð  $cð  $cð  $cñ  dô  dð  jkð  køøøøð	køøøð
 #Ø!˜$�k�k�kð
ð 
ð 	
ð × Ò  Ñ)Ô)ð 
ð	pÝÔ(¨¸¸¸Ô);Ñ<Ô<ˆDˆDøÝð 	pð 	pð 	pÝ"Ð#gÐbcÐ#gÐ#gÐ#gÑhÔhÐnoÐoøøøøð	pøøøð #Ø1˜tœÐ1Ð1Ð1ð
ð 
ð 	
ð �.Ð Ð ÝÐ}Ñ~Ô~Ð~ðð àðñ ô €Ið
 ð KÝÐdÐgk×gpÒgpÕqwð  yBñ  rCô  rCñ  hDô  hDñ   Dð  GJñ   Jñ  Kô  Kð  	Kõ ÐkÑ
lÔ
lÐls,   —, ¬
A¶A
Á
AÁ1B Â
B1ÂB,Â,B1)TFFF)F)FT)+Ú
exceptionsr   Útypesr   Úrfc_constantsr   r   r   r   r	   r
   r   r   r   r   r   r   r   rˆ   r"   rÂ   rà   Útypingr   r   r   r   rG   rH   rT   Úintr^   r3   rn   r�   rL   rŠ   r°   r²   rÐ   rÜ   rÞ   rë   ru   r-   r+   ú<module>rñ      sÜ  ðØ (Ð (Ð (Ð (Ð (Ð (Ø !Ð !Ð !Ð !Ð !Ð !ð\ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð \ð 
€	€	€	Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4ðxG�sð xG˜u X¨c¤]°C¸¸dÐ%BÔCð xGð xGð xGð xGðv2˜Cð 2¨ð 2°ð 2ð 2ð 2ð 2ð"˜cð " cð "ð "ð "ð "ð"ð ð ð ð  	ñ ô ð ð bgØNSð^_ð ^_ Sð ^_¸$ð ^_ÐZ^ð ^_Ø15ð^_ØGKð^_ØXqð^_ð ^_ð ^_ð ^_ðB1hð 1h˜#ð 1h¨Dð 1h¸Tð 1hð 1hð 1hð 1hðhm˜#ð m¨Cð m¸Cð mÈdð mÐW[ð mð mð mð mð&˜3ð  4ð ð ð ð ð<ð ð ð ð  ñ ô ð ð
Dð D sð D¸dð DÐbfð Dð  sMð Dð Dð Dð DðN<O Nð <O°tð <Oð <Oð <Oð <Oð~ð ð ð ð  Iñ ô ð ð
9m°#ð 9mÐ:Wð 9mð 9mð 9mð 9mð 9mð 9mr-   