
    ;e>                     T   	 d dl Z ddlmZmZ d dlZg dZdZe j         e j        e j	        e j
                   G d d                                  Zej        Zd d	Zd d
Zd dZd!dZd!dZd!dZd dZd dZd dZd Zd dZd dD             Zd Z e ej        dd                     Z e ej        dd                               d                    Zi ZdZd Z ej         e          d             Z!d Z"d Z#d dl$Z$d Z% e$j&        ee%e            G d d          Z'dS )"    N   )	_compiler_parser)match	fullmatchsearchsubsubnsplitfindallfinditercompilepurgetemplateescapeerrorPatternMatchAILMSXUASCII
IGNORECASELOCALE	MULTILINEDOTALLVERBOSEUNICODENOFLAG	RegexFlagz2.2.1)boundaryc                       e Zd ZdZej        xZZej        xZ	Z
ej        xZZej        xZZej        xZZej        xZZej        xZZej        xZZej        Zej         Z e!Z"dS )r$   r   N)#__name__
__module____qualname__r#   r   SRE_FLAG_ASCIIr   r   SRE_FLAG_IGNORECASEr   r   SRE_FLAG_LOCALEr   r   SRE_FLAG_UNICODEr"   r   SRE_FLAG_MULTILINEr   r   SRE_FLAG_DOTALLr    r   SRE_FLAG_VERBOSEr!   r   SRE_FLAG_TEMPLATETEMPLATETSRE_FLAG_DEBUGDEBUGobject__str__hex_numeric_repr_     "/usr/lib/python3.11/re/__init__.pyr$   r$      s         F((EA22J**FQ,,Ga00I**FQ,,Ga..Hq$EnGNNNr;   r$   c                 J    	 t          | |                              |          S N)_compiler   patternstringflagss      r<   r   r      s%    6GU##))&111r;   c                 J    	 t          | |                              |          S r>   )r?   r   r@   s      r<   r   r      s%    6GU##--f555r;   c                 J    	 t          | |                              |          S r>   )r?   r   r@   s      r<   r   r      s%    6GU##**6222r;   c                 N    	 t          | |                              |||          S r>   )r?   r	   rA   replrB   countrC   s        r<   r	   r	      s+    ( GU##''fe<<<r;   c                 N    	 t          | |                              |||          S r>   )r?   r
   rG   s        r<   r
   r
      s+    / GU##((vu===r;   c                 L    	 t          | |                              ||          S r>   )r?   r   )rA   rB   maxsplitrC   s       r<   r   r      s)     GU##))&(;;;r;   c                 J    	 t          | |                              |          S r>   )r?   r   r@   s      r<   r   r      s'    1 GU##++F333r;   c                 J    	 t          | |                              |          S r>   )r?   r   r@   s      r<   r   r      s'    1 GU##,,V444r;   c                 $    	 t          | |          S r>   )r?   )rA   rC   s     r<   r   r      s    GGU###r;   c                  l    	 t                                            t                                           d S r>   )_cacheclear_compile_replcache_clearr:   r;   r<   r   r      s*    )
LLNNNr;   c                    	 dd l }|                    dt                     |                                5  |                    dt                     t          | |t          z            cd d d            S # 1 swxY w Y   d S )Nr   zThe re.template() function is deprecated as it is an undocumented function without an obvious purpose. Use re.compile() instead.ignore)warningswarnDeprecationWarningcatch_warningssimplefilterr?   r3   )rA   rC   rW   s      r<   r   r      s    HOOOMM . %	& & &
 
	 	 	"	" * *h(:;;;q))* * * * * * * * * * * * * * * * * *s   3A55A9<A9c                 4    i | ]}|d t          |          z   S )\)chr).0is     r<   
<dictcomp>ra      s$    RRR1aARRRr;   s   ()[]{}?*+-|^$\.&~# 	
c                     	 t          | t                    r|                     t                    S t          | d          } |                     t                                        d          S )Nlatin1)
isinstancestr	translate_special_chars_mapencode)rA   s    r<   r   r      sc     '3 F  !3444gx((  !344;;HEEEr;    i   c                    t          |t                    r|j        }	 t          t	          |           | |f         S # t
          $ r Y nw xY wt          | t                    r|rt          d          | S t          j	        |           st          d          |t          z  rdd l}|                    dt                     t          j        | |          }|t           z  s}t#          t                    t$          k    rF	 t          t'          t)          t                              = n# t*          t,          t
          f$ r Y nw xY w|t          t	          |           | |f<   |S )Nz5cannot process flags argument with a compiled patternz1first argument must be string or compiled patternr   zoThe re.TEMPLATE/re.T flag is deprecated as it is an undocumented flag without an obvious purpose. Don't use it.)rd   r$   valuerQ   typeKeyErrorr   
ValueErrorr   isstring	TypeErrorr3   rW   rX   rY   r   r5   len	_MAXCACHEnextiterStopIterationRuntimeError)rA   rC   rW   ps       r<   r?   r?     sz   %## d7mmWe344   '7##  	IGI I Ig&& MKLLLqy & " %		& 	& 	&
 	'5))AEM 2v;;)##4V--..!<:   01tG}}gu,-Hs!   ; 
AA<'D$ $D>=D>c                 ,    t          j        | |          S r>   )r   parse_template)rH   rA   s     r<   rS   rS   1  s     !$000r;   c                 V    t          j        ||           }t          j        ||          S r>   )r   ry   expand_template)rA   r   r   s      r<   _expandr|   6  s'    %h88H"8U333r;   c                     t          ||           }|d         s't          |d                   dk    r|d         d         S |fd}|S )Nr   r   c                 ,    t          j        ||           S r>   )r   r{   )r   r   s     r<   filterz_subx.<locals>.filterA  s    &x777r;   )rS   rq   )rA   r   r   s      r<   _subxr   ;  s]    Xw//HA; 3x{++q00{1~' 8 8 8 8Mr;   c                 ,    t           | j        | j        ffS r>   )r?   rA   rC   )rw   s    r<   _pickler   I  s    ai)))r;   c                       e Zd ZddZd ZdS )Scannerr   c                    ddl m}m} t          |t                    r|j        }|| _        g }t          j                    }||_	        |D ]w\  }}|
                                }	|                    t          j        |||	ddt          j        ||          ffg                     |                    |	|d                    xt          j        ||d |ffg          }t          j        |          | _        d S )Nr   )BRANCH
SUBPATTERNr   )
_constantsr   r   rd   r$   rk   lexiconr   StaterC   	opengroupappend
SubPatternparse
closegroupr   r   scanner)
selfr   rC   r   r   rw   sphraseactiongids
             r<   __init__zScanner.__init__R  s   22222222eY'' 	 KEMOO% 	% 	%NFF++--CHHW'c1avu)E)EFG,      LLae$$$$qFT1I#6"788 (++r;   c                 ~   g }|j         }| j                            |          j        }d}	  |            }|snz|                                }||k    rn_| j        |j        dz
           d         }t          |          r%|| _         || |                                          }| ||           |}|||d          fS )Nr   Tr   )r   r   r   endr   	lastindexcallablegroup)	r   rB   resultr   r   r`   mjr   s	            r<   scanzScanner.scanc  s    $$V,,2	A AAvv\!+a-03F 1
aggii00!vA	 vabbz!!r;   Nr   )r'   r(   r)   r   r   r:   r;   r<   r   r   Q  s7        , , , ,"" " " " "r;   r   r   )r   r   )(enumri   r   r   	functools__all____version__global_enum_simple_enumIntFlagKEEPr$   r   r   r   r   r	   r
   r   r   r   r   r   r   rg   r   rl   r   r   rQ   rr   r?   	lru_cacherS   r|   r   copyregr   pickler   r:   r;   r<   <module>r      s  "iV                        4<$)444       54   	
2 2 2 2
6 6 6 6
3 3 3 3
= = = =	> 	> 	> 	>< < < <4 4 4 45 5 5 5$ $ $ $     

* 
* 
* 
*" SR0QRRR F F F $ y Q''
(
(Yr1%%++B//00
 
	  B Y1 1  14 4 4
   * * * w * * *
%" %" %" %" %" %" %" %" %" %"r;   