
    ؀c                        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z   dz   ez   dz   ez   dz   ZdZdez   d	z   Zd
ZdZdZdez   dz   ez   dz   dz   Zdez   dz   dz   ez   dz   dz   dz   ez   dz   ez   dz   ez   dz   dz   Zdez   dz   ez   dz   dz   Zdez   dz   dz   ez   dz   dz   Zdez   dz   Zdez   dz   Zd Zd Z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                     dt           z   dz   t          z   dz   dz   |                     d          rdndz   dz   t          z   d	z   }|S )
Nz(?=$|r   r	   z(?!---z-(?!--)|z-|z_|:\d|\.-|\.(?!$|)))TEXT_SEPARATORSSRC_ZPCCget)optssrc_host_terminators     /lib/python3.11/site-packages/linkify_it/ucre.py_re_host_terminatorr   d   s{    
	
	 	 		
 	 %2::d	4 !	! 	 		      c                    dt           z   dz   t          z   dz   dz   t           z   dz   dz   t           z   dz   dz   t           z   d	z   d
z   t           z   dz   dz   t           z   dz   dz   t          z   dz   dz   dz   t           z   dz   |                     d          rdndz   dz   t           z   dz   dz   t           z   dz   dz   t           z   dz   dz   t           z   dz   dz   dz   dz   }|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_paths     r   _re_src_pathr   t   s   	 		
 	 	 &	& 	 		 
	 	 	 	 	 	  !	" #	$ %	& '	( )	* +	, -	. /	0 1	2 3	4 #5	#F G#	H I$	J K%	L ,088E??G''M&	IN O'	P Q(	R S)	T U*	V W+	X Y,	Z [-	\ ].	^ _/	` a0	b c1	d e2	f g3	h i4	j k5	 r Or   c                 ~   t           t          |           z   }t          t          |           z   }t           t          z   t          |           z   }t          t          z   t          |           z   }t          t          z   t          |           z   }dt
          z   dz   t          z   dz   dz   t          z   dz   |z   dz   }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          z   dz   dz   |z   t#          |           z   dz   dt          z   dz   dz   |z   t#          |           z   dz   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regexs           r   build_rerO      s~    !4T!:!::O*-@-F-FF#h.1DT1J1JJ!/(!:=PQU=V=V!V 	x'*=d*C*CC %
 	
	
	 	 		
 	 	 	  	  		 373&3 	&3 		3
 	3 	H3 	73 	.3 	73 	H3 	H3 	24883 	L&&3 	.3 	&3  	?!3" 	j#3$ ( 4*!6 4&@,F2* 4 && )	)
 4  !  4 && /	/
 4  ! W3 3 3Ej Lr   N) uc_micro.categoriesr   r   r   r   uc_micro.propertiesr   REGEXr=   r>   r?   rA   r@   joinr   r   r   r   rB   rC   r:   r<   rD   rE   rF   r8   r9   r;   rG   r   r   rO    r   r   <module>rU      sk   , , , , , , , , , , , , # # # # # #
)				 88UE6*++ ((E6?
#
# 
 .4x?#EORUU &   #99 V 	 P	  &.3&)::XEK 
	
  	
 

 

   	 
   

 

 &    
	
 


 	 
GOcK'*47JJSP  #Z/2EE  :HDxO 
   : : :zW W W W Wr   