o
    DD©i¿  ã                   @   sX  d dl mZmZmZmZ d dlmZ ejZejZ	ejZ
ejZejZd eee	g¡Zd ee	g¡ZdZde d e d e d ZdZde d	 Zd
ZdZdZde d e d d Zde d d e d d d e d e d e d d Zde d e d d Zde d d e d d Zde d Zde d Zdd„ Zdd„ Zdd„ ZdS )é    )ÚCcÚCfÚPÚZ)ÚAnyú|u   [><ï½œ]z(?:(?!ú)zU(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)z	(?:(?:(?!z|[@/\[\]()]).)+@)?zK(?::(?:6(?:[0-4]\d{3}|5(?:[0-4]\d{2}|5(?:[0-2]\d|3[0-5])))|[1-5]?\d{1,4}))?z3[\-:&=\+\$,\.a-zA-Z0-9_][\-:&=\+\$,\"\.a-zA-Z0-9_]*zxn--[a-z0-9\-]{1,59}z(?:z{1,63}z(?:-|z){0,61}z(?:(?:(?:(?:z)\.)*z	(?:(?:(?:z)\.)+(?:%TLDS%))z.localhost|www\.|\.\d{1,3}\.|(?:\.(?:%TLDS%)(?:z|>|$))c                 C   s:   dt  d t d d |  d¡rdnd d t d	 }|S )
Nz(?=$|r   r   z(?!ú---z-(?!--)|z-|z_|:\d|\.-|\.(?!$|ú)))ÚTEXT_SEPARATORSÚSRC_ZPCCÚget)ÚoptsÚsrc_host_terminator© r   úH/var/www/Datamplify/venv/lib/python3.10/site-packages/linkify_it/ucre.pyÚ_re_host_terminatord   s*   ÿþýüûúùø	÷ÿr   c                 C   s¾   dt  d t d d t  d d t  d d t  d	 d
 t  d d t  d d t d d d t  d |  d¡r<dnd d t  d d t  d d t  d d t  d d d d }|S ) Nz(?:[/?#](?:(?!r   z|[()[\]{}.,"'?!\-;]).|z\[(?:(?!z
|\]).)*\]|z\((?:(?!z|[)]).)*\)|z\{(?:(?!z|[}]).)*\}|z\"(?:(?!z|["]).)+\"|z\'(?:(?!z|[']).)+\'|z\'(?=z|[-])|z\.{2,}[a-zA-Z0-9%/&]|z\.(?!z|[.]|$)|r	   z\-(?!--(?:[^-]|$))(?:-*)|z\-+|z,(?!z|$)|z;(?!z\!+(?!z|[!]|$)|z\?(?!z|[?]|$)z)+z|\/z)?)ÚSRC_ZCCr   ÚSRC_PSEUDO_LETTERr   )r   Úsrc_pathr   r   r   Ú_re_src_patht   s®   üûúùø	÷
öõôóòñðïîíìëêéèçæ#Ý$Ü%Û&Ú'Ù(Ø)×*Ö+Õ,Ô-Ó.Ò/Ñ0Ð1Ï2Î3Í4Ì5Ëÿ9r   c                 C   s<  t t| ƒ }tt| ƒ }t t t| ƒ }tt t| ƒ }tt t| ƒ }dt d t d d t d | d }i dt“dt	“dt
“d	t“d
t“dt“dt“dt“dt“dt“dt“dt| ƒ“dt| ƒ“dt“dt“dt“dt“t tt|||||t|dt d d | t| ƒ d dt d d | t| ƒ d dœ¥}|S )zhBuild regex

    Args:
        opts (dict): options

    Return:
        dict: dict of regex string
    z(^|z|"|\(|r   ú(ú@Úsrc_AnyÚsrc_CcÚsrc_CfÚsrc_ZÚsrc_PÚsrc_ZPCcÚsrc_ZCcÚsrc_pseudo_letterÚsrc_ip4Úsrc_authÚsrc_portr   r   Úsrc_email_nameÚsrc_xnÚsrc_domain_rootÚ
src_domainu!   (^|(?![.:/\-_@])(?:[$+<=>^`|ï½œ]|r
   u   ((?![$+<=>^`|ï½œ]))Úsrc_hostÚtpl_host_fuzzyÚtpl_host_no_ip_fuzzyÚsrc_host_strictÚtpl_host_fuzzy_strictÚsrc_host_port_strictÚtpl_host_port_fuzzy_strictÚ tpl_host_port_no_ip_fuzzy_strictÚtpl_host_fuzzy_testÚtpl_email_fuzzyÚtpl_link_fuzzyÚtpl_link_no_ip_fuzzy)ÚSRC_HOSTr   ÚTPL_HOST_FUZZYÚSRC_PORTÚTPL_HOST_NO_IP_FUZZYr   r   ÚSRC_EMAIL_NAMEÚSRC_ANYÚSRC_CCÚSRC_CFÚSRC_ZÚSRC_Pr   r   ÚSRC_IP4ÚSRC_AUTHr   ÚSRC_XNÚSRC_DOMAIN_ROOTÚ
SRC_DOMAINÚTPL_HOST_FUZZY_TEST)r   ÚSRC_HOST_STRICTÚTPL_HOST_FUZZY_STRICTÚSRC_HOST_PORT_STRICTÚTPL_HOST_PORT_FUZZY_STRICTÚ TPL_HOST_PORT_NO_IP_FUZZY_STRICTÚTPL_EMAIL_FUZZYÚregexr   r   r   Úbuild_re±   sÆ   	ÿÿþýüûúùø	÷ÿÿþýüûúùø	÷
öõôóòñðïÿþýüûúÿþýüûúÕ5rK   N) Úuc_micro.categoriesr   r   r   r   Úuc_micro.propertiesr   ÚREGEXr9   r:   r;   r=   r<   Újoinr   r   r   r   r>   r?   r6   r8   r@   rA   rB   r4   r5   r7   rC   r   r   rK   r   r   r   r   Ú<module>   sŠ    ÿÿÿþýüûúùø	÷
öõôóòÿúùø	÷
öÿÿ
ÿ=