
    F\h                     >   S r SSK7  SrSr\" S5      r\" S5      r\" S5      r\" S5      r\" S	5      r	\" \
\\15      r\" \\\\\\15      r\\" S
5      4\\" S5      4\\" S5      4\\" S5      4\\" S5      4\\" S5      4\\" S5      4\\" S5      4S.r\\4\\4\\4\\\4/4\\\4/4\\\4/4\\\4/4\\\4/4\\\ 4/4\\!4S.
r"\#\$\%\&\'\(\)S.r*\(\$-  \)-  r+\,r-Sr. " S S5      r/ " S S5      r0 " S S5      r1S r2S r3S r4S r5S&S  jr6S! r7S" r8S'S$ jr9S% r:g#)(zInternal support module for sre   )*z.\[{()*+?^$|z*+?{
0123456789012345670123456789abcdefABCDEF4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZz 	

	\)z\a\bz\fz\nz\rz\tz\vz\\)
z\Ar   z\Bz\dz\Dz\sz\Sz\wz\Wz\Z)iLmsxaul            c                   F    \ rS rSrS r\S 5       rS
S jrS rS r	S r
S	rg)StateJ   c                 L    SU l         0 U l        S /U l        S U l        0 U l        g )N    )flags	groupdictgroupwidthslookbehindgroupsgrouprefposselfs    !/usr/lib/python3.13/re/_parser.py__init__State.__init__L   s*    
 6 $    c                 ,    [        U R                  5      $ N)lenr   r"   s    r$   groupsState.groupsR   s    4##$$r'   Nc                    U R                   nU R                  R                  S 5        U R                   [        :  a  [	        S5      eUb=  U R
                  R                  US 5      nUb  [	        SXU4-  5      eX R
                  U'   U$ )Nztoo many groupsz7redefinition of group name %r as group %d; was group %d)r+   r   append	MAXGROUPSerrorr   get)r#   namegidogids       r$   	opengroupState.opengroupU   s    kk%;;")**>>%%dD1D +.2$-?@ A A#&NN4 
r'   c                 >    UR                  5       U R                  U'   g r)   )getwidthr   )r#   r3   ps      r$   
closegroupState.closegroupa   s     !

r'   c                 N    XR                   :  =(       a    U R                  U   S L$ r)   )r+   r   )r#   r3   s     r$   
checkgroupState.checkgroupc   s$    [[ FT%5%5c%:$%FFr'   c                     U R                   bH  U R                  U5      (       d  UR                  S5      eXR                   :  a  UR                  S5      eg g )Ncannot refer to an open groupz?cannot refer to group defined in the same lookbehind subpattern)r    r=   r0   )r#   r3   sources      r$   checklookbehindgroupState.checklookbehindgroupf   sY      ,??3''ll#BCC+++ll $; < < , -r'   )r   r   r!   r   r    r)   )__name__
__module____qualname____firstlineno__r%   propertyr+   r5   r:   r=   rB   __static_attributes__ r'   r$   r   r   J   s0     % %-G<r'   r   c                   X    \ rS rSrSS jrSS jrS rS rS rS r	S	 r
S
 rS rS rSrg)
SubPatternn   Nc                 4    Xl         Uc  / nX l        S U l        g r)   )statedatawidth)r#   rO   rP   s      r$   r%   SubPattern.__init__p   s    
<D	
r'   c                    [         [        4nU R                   GH  u  p4[        US-  [	        U5      -   SS9  U[
        L a5  [        5         U H#  u  p5[        US-   S-  [	        U5      -   U5        M%     M]  U[        L aO  [        5         [        US   5       H1  u  peU(       a  [        US-  S-   5        UR                  US-   5        M3     M  U[        L aW  Uu  pxn	[        SU5        UR                  US-   5        U	(       a(  [        US-  S-   5        U	R                  US-   5        GM  GM  [        U[        5      (       a!  [        5         UR                  US-   5        GMK  [        XB5      (       a}  Sn
U H^  n[        U[        5      (       a)  U
(       d
  [        5         UR                  US-   5        Sn
MA  U
(       d
  [        S	SS9  [        USS9  Sn
M`     U
(       d  [        5         GM  GM  [        SU5        GM     g )
Nz   )endr   ORELSEFT )tuplelistrP   printstrINBRANCH	enumeratedumpGROUPREF_EXISTS
isinstancerL   )r#   levelseqtypesopavr   r   	condgroupitem_yesitem_nonls              r$   r`   SubPattern.dumpw   s   4=iiFB%*s2w&B/RxEB57D.3r72A6  v%be,DAeDj4/0FF57O - &/1,	Wb)$eAg&%*v-.LLq)  B
++a B))A!!Z00!!GuQw!!!#2.aR("  G  b"O  r'   c                 ,    [        U R                  5      $ r)   )reprrP   r"   s    r$   __repr__SubPattern.__repr__   s    DIIr'   c                 ,    [        U R                  5      $ r)   )r*   rP   r"   s    r$   __len__SubPattern.__len__   s    499~r'   c                     U R                   U	 g r)   rP   r#   indexs     r$   __delitem__SubPattern.__delitem__   s    IIer'   c                     [        U[        5      (       a#  [        U R                  U R                  U   5      $ U R                  U   $ r)   )rb   slicerL   rO   rP   ru   s     r$   __getitem__SubPattern.__getitem__   s8    eU##djj$))E*:;;yyr'   c                      X R                   U'   g r)   rt   r#   rv   codes      r$   __setitem__SubPattern.__setitem__   s    		%r'   c                 :    U R                   R                  X5        g r)   )rP   insertr~   s      r$   r   SubPattern.insert   s    		%r'   c                 :    U R                   R                  U5        g r)   )rP   r.   )r#   r   s     r$   r.   SubPattern.append   s    		r'   c                     U R                   b  U R                   $ S=pU R                   GH  u  p4U[        L aF  [        nSnUS    H+  nUR	                  5       u  px[        XW5      n[        Xh5      nM-     X-   nX&-   nMU  U[        L a  UR	                  5       u  pVX-   nX&-   nMz  U[        L a  US   R	                  5       u  pVX-   nX&-   nM  U[        ;   aG  US   R	                  5       u  pVXUS   -  -   nUS   [        :X  a  U(       a  [        nM  X&US   -  -   nM  U[        ;   a  US-   nUS-   nGM
  U[        L a&  U R                  R                  U   u  pVX-   nX&-   nGM9  U[        L aT  US   R	                  5       u  pVUS   b,  US   R	                  5       u  px[        XW5      n[        Xh5      nOSnX-   nX&-   nGM  U[         L d  GM    O   [        U[        5      [        U[        5      4U l         U R                   $ )Nr   r      )rQ   rP   r^   MAXWIDTHr8   minmaxATOMIC_GROUP
SUBPATTERN_REPEATCODES	MAXREPEAT
_UNITCODESGROUPREFrO   r   ra   SUCCESS)	r#   lohire   rf   r   jlhs	            r$   r8   SubPattern.getwidth   s   ::!::iiFBV|Q%B;;=DAA	AA	A   VV|#{{}VVz!"v(VV|#!u~~'be)^a5I%!!B"Q%iBz!!V!Vxzz--b1VV&!u~~'a5$a5>>+DAA	AA	AAVVwW  X X&B(99
zzr'   )rP   rO   rQ   r)   r   )rD   rE   rF   rG   r%   r`   rn   rq   rw   r{   r   r   r.   r8   rI   rJ   r'   r$   rL   rL   n   s5    )T  &2r'   rL   c                   d    \ rS rSrS rS rS rS rS rS r	\
S 5       rS	 rS
 rSS jrS rSrg)	Tokenizer   c                     [        U[        5      U l        Xl        U R                  (       d  [        US5      nXl        SU l        S U l        U R                  5         g )Nlatin1r   )rb   r\   istextstringdecoded_stringrv   next_Tokenizer__next)r#   r   s     r$   r%   Tokenizer.__init__   sE     -{{*F$
	r'   c                 <   U R                   n U R                  U   nUS:X  a  US-  n X R                  U   -  nUS-   U l         X l        g ! [         a
    S U l         g f = f! [         a/    [	        SU R
                  [        U R
                  5      S-
  5      S ef = f)Nr   r   zbad escape (end of pattern))rv   r   
IndexErrorr   r0   r   r*   )r#   rv   chars      r$   __nextTokenizer.__next   s    

	&&u-D 4<QJEI++E22 QY
	  	DI	  I9 KKT[[)9A)=?DHIIs   A A" AA"9Bc                 D    XR                   :X  a  U R                  5         gg)NTFr   r   )r#   r   s     r$   matchTokenizer.match   s    99KKMr'   c                 >    U R                   nU R                  5         U$ r)   r   )r#   thiss     r$   r1   Tokenizer.get  s    yyr'   c                 ~    Sn[        U5       H+  nU R                  nXR;  a    U$ X5-  nU R                  5         M-     U$ NrT   )ranger   r   )r#   ncharsetresult_cs         r$   getwhileTokenizer.getwhile  sG    qA		A  KFKKM  r'   c                    Sn U R                   nU R                  5         Uc9  U(       d  U R                  SU-   5      eU R                  SU-  [        U5      5      eXA:X  a  U(       d  U R                  SU-   S5      e U$ X4-  nM  )NrT   zmissing zmissing %s, unterminated namer   )r   r   r0   r*   )r#   
terminatorr2   r   r   s        r$   getuntilTokenizer.getuntil  s    		AKKMy**Z$%677jj!@:!M!$V. .**Z$%6:: KF r'   c                 X    U R                   [        U R                  =(       d    S5      -
  $ r   rv   r*   r   r"   s    r$   posTokenizer.pos!  s    zzC		R000r'   c                 X    U R                   [        U R                  =(       d    S5      -
  $ r   r   r"   s    r$   tellTokenizer.tell$  s    zzC		R000r'   c                 0    Xl         U R                  5         g r)   )rv   r   ru   s     r$   seekTokenizer.seek&  s    
r'   c                     U R                   (       d!  UR                  SS5      R                  S5      n[        XR                  U R                  5       U-
  5      $ )Nasciibackslashreplace)r   encodedecoder0   r   r   )r#   msgoffsets      r$   r0   Tokenizer.error*  sA    {{**W&89@@ICS++tyy{V';<<r'   c                    U R                   (       d8  UR                  5       (       d#  SU-  nU R                  U[        U5      U-   5      eUR	                  5       (       d#  SU-  nU R                  U[        U5      U-   5      eg )Nzbad character in group name %azbad character in group name %r)r   isasciir0   r*   isidentifier)r#   r2   r   r   s       r$   checkgroupnameTokenizer.checkgroupname/  so    t||~~2T9C**S#d)f"455  ""2T9C**S#d)f"455 #r'   )r   rv   r   r   r   Nr   )rD   rE   rF   rG   r%   r   r   r1   r   r   rH   r   r   r   r0   r   rI   rJ   r'   r$   r   r      sH     
  1 11=
6r'   r   c                 v   [         R                  U5      nU(       a  U$ [        R                  U5      nU(       a  US   [        L a  U$  USS nUS:X  aZ  XR	                  S[
        5      -  n[        U5      S:w  a  U R                  SU-  [        U5      5      e[        [        USS  S5      4$ US:X  ak  U R                  (       aZ  XR	                  S[
        5      -  n[        U5      S	:w  a  U R                  SU-  [        U5      5      e[        [        USS  S5      4$ US
:X  ax  U R                  (       ag  XR	                  S[
        5      -  n[        U5      S:w  a  U R                  SU-  [        U5      5      e[        USS  S5      n[        U5        [        U4$ US:X  aq  U R                  (       a`  SS KnU R                  S5      (       d  U R                  S5      eU R                  SS5      n [        UR!                  U5      5      n[        U4$ U[&        ;   aS  XR	                  S[&        5      -  n[        USS  S5      nUS:  a  U R                  SU-  [        U5      5      e[        U4$ U[(        ;   a  [*        e[        U5      S:X  a<  U[,        ;   a  U R                  SU-  [        U5      5      e[        [        US   5      4$  U R                  SU-  [        U5      5      e! ["        [$        4 a,    U R                  SU-  [        U5      [        S5      -   5      S ef = f! [*         a     Nif = f)Nr   r   r   r      incomplete escape %s   r      U   
   N{	missing {}character nameundefined character name %r\N{}   .octal escape value %s outside of range 0-0o377bad escape %s)ESCAPESr1   
CATEGORIESr]   r   	HEXDIGITSr*   r0   LITERALintr   chrunicodedatar   r   ordlookupKeyError	TypeError	OCTDIGITSDIGITS
ValueErrorASCIILETTERS)rA   escaper   r   r   charnames         r$   _class_escaper   7  s   ;;vD>>&!DQ211QK8ooa33F6{all#9F#BCKPPCqr
B///#X&--ooa33F6{all#9F#BCKPPCqr
B///#X&--ooa33F6{b ll#9F#BCKPPF12J#AFA:#X&--<<$$ll;//s,<=HK**845 A:)^ooa33FF12J"A5yll $35;$<=@[J JA:&[v;!L ll?V#;S[IICq	N**  ,,/V
==) i( Kll#@8#K#&x=3w<#?AFJKK$  sN   
A$L+ /A0L+  A=L+ AL+ 3K, L+ AL+ 2AL+ ,<L((L+ +
L87L8c                 R   [         R                  U5      nU(       a  U$ [        R                  U5      nU(       a  U$  USS nUS:X  aZ  XR                  S[        5      -  n[        U5      S:w  a  U R                  SU-  [        U5      5      e[        [        USS  S5      4$ US:X  ak  U R                  (       aZ  XR                  S[        5      -  n[        U5      S:w  a  U R                  SU-  [        U5      5      e[        [        USS  S5      4$ US	:X  ax  U R                  (       ag  XR                  S
[        5      -  n[        U5      S:w  a  U R                  SU-  [        U5      5      e[        USS  S5      n[        U5        [        U4$ US:X  aq  U R                  (       a`  SS KnU R                  S5      (       d  U R                  S5      eU R                  SS5      n [        UR                  U5      5      n[        U4$ US:X  a-  XR                  S[$        5      -  n[        [        USS  S
5      4$ U[&        ;   Ga)  U R(                  [&        ;   a  XR                  5       -  nUS   [$        ;   an  US   [$        ;   aa  U R(                  [$        ;   aM  XR                  5       -  n[        USS  S
5      nUS:  a  U R                  SU-  [        U5      5      e[        U4$ [        USS  5      nXrR*                  :  aJ  UR-                  U5      (       d  U R                  S[        U5      5      eUR/                  Xp5        [0        U4$ U R                  SU-  [        U5      S-
  5      e[        U5      S:X  a<  U[2        ;   a  U R                  SU-  [        U5      5      e[        [        US   5      4$  U R                  SU-  [        U5      5      e! [         ["        4 a,    U R                  SU-  [        U5      [        S5      -   5      S ef = f! [4         a     Nif = f)Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   0r   r   r@   invalid group reference %dr   )r   r1   r   r   r   r*   r0   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r+   r=   rB   r   r   r   )rA   r   rO   r   r   r   r   groups           r$   _escaper   s  s   >>&!D;;vDB1QK8ooa33F6{all#9F#BCKPPCqr
B///#X&--ooa33F6{all#9F#BCKPPCqr
B///#X&--ooa33F6{b ll#9F#BCKPPF12J#AFA:#X&--<<$$ll;//s,<=HK**845 A:#Xooa33FCqr
A...&[{{f$**,&1I*vayI/EKK9,jjl*FF12J*A5y$ll ,;=C,D+.v;8 8 #A:%qr
OE||#''.. ,,'F'*6{4 4**59&,,;eCS[ST_UUv;!L ll?V#;S[IICq	N**  ,,/V
==K i( Kll#@8#K#&x=3w<#?AFJKKF  sZ   A$P #A0P A=P AP 'O P 	2P <B+P (A&P A+P <PP 
P&%P&c                 >    [        [        R                  U 5      5      $ r)   )rZ   dictfromkeys)itemss    r$   _uniqr    s    e$%%r'   c           
          / nUR                   nU R                  nU R                  5       n U" [        XX#S-   U(       + =(       a    U(       + 5      5        U" S5      (       d  OU(       d  UR                  [
        -  nMS  [        U5      S:X  a  US   $ [        U5      n S n	U H!  n
U
(       d    O8U	c  U
S   n	M  U
S   U	:w  d  M!    O!   U H  n
U
S	 M     UR                  U	5        MI   / nU Hc  n
[        U
5      S:w  a    OuU
S   u  pU[        L a  UR                  X45        M8  U[        L a"  US   S   [        La  UR                  U5        Mc    O$   UR                  [        [        U5      45        U$ UR                  [        S U445        U$ )Nr   |r   )r.   r   r   _parser   SRE_FLAG_VERBOSEr*   rL   r   r]   NEGATEextendr  r^   )rA   rO   verbosenestedr  itemsappendsourcematchstart
subpatternprefixitemsetre   rf   s                 r$   
_parse_subr    s    E,,K,,KKKME
F6'A:%:3e)5 	63kk$44G  5zQQxE"J D~aaF"  G f% Ct9>a=JJx 2X"Q%(&0JJrN  	2uSz*+ve}-.r'   c                    [        U5      nUR                  nU R                  nU R                  n[        n	[
        n
 U R                  nUc  GOUS;   a  GOU" 5         U(       a(  U[        ;   a  M4  US:X  a   U" 5       nUb  US:X  a  OM  MP  US   S:X  a  [        XU5      nU" U5        GO8U[        ;  a  U" [        U
" U5      45        GOUS:X  Ga;  U R                  5       S-
  n/ nUR                  nU R                  S:X  a-  SS KnUR                  S	U R                  5       -  [        US
-   S9  U" S5      n U" 5       nUc#  U R                  SU R                  5       U-
  5      eUS:X  a	  U(       a  GOUS   S:X  a  [!        X5      nOuU(       a`  US;   aZ  U R                  U:X  aJ  SS KnUR                  SUS:X  a  SOUS:X  a  SO	US:X  a  SOSU R                  5       S-
  4-  [        US
-   S9  [        U
" U5      4nU" S5      (       Gab  U" 5       nUc#  U R                  SU R                  5       U-
  5      eUS:X  a2  US   ["        L a  US   S   nU" U5        U" [        U
" S5      45        GOUS   S:X  a  [!        U U5      nODUS:X  a0  SS KnUR                  SU R                  5       S-
  -  [        US
-   S9  [        U
" U5      4nUS   [        :w  d  US   [        :w  a4  SU< SU< 3nU R                  U[	        U5      S-   [	        U5      -   5      eUS   nUS   nUU:  a4  SU< SU< 3nU R                  U[	        U5      S-   [	        U5      -   5      eU" [$        UU445        OUS   ["        L a  US   S   nU" U5        GMU  ['        U5      nU	" U5      S:X  a9  US   S   [        L a*  U(       a  U" [(        US   S   45        G
OU" US   5        G
OU(       a  UR+                  S[,        S 45        U" ["        U45        G	OU[.        ;   Ga  U R                  5       nUS:X  a  Su  nnGOUS:X  a
  S[0        nnGO~US:X  a
  S[0        nnGOnUS:X  GaX  U R                  S :X  a  U" [        U
" U5      45        GMG  S[0        nnS!=nnU R                  [2        ;   a   UU" 5       -  nU R                  [2        ;   a  M   U" S"5      (       a5  U R                  [2        ;   a   UU" 5       -  nU R                  [2        ;   a  M   OUnU" S 5      (       d(  U" [        U
" U5      45        U R5                  U5        GM   U(       a   [7        U5      nU[0        :  a  [9        S#5      eU(       aI  [7        U5      nU[0        :  a  [9        S#5      eUU:  a#  U R                  S$U R                  5       U-
  5      eO[;        S%W< 35      eU(       a  US&S  nOS nU(       a  US   S   [<        L a/  U R                  S'U R                  5       U-
  [	        U5      -   5      eUS   S   [>        ;   a/  U R                  S(U R                  5       U-
  [	        U5      -   5      eUS   S   [@        L a   US   S   u  nnnnUc  U(       d	  U(       d  UnU" S5      (       a  [B        UUU44US&'   GOAU" S5      (       a  [D        UUU44US&'   GO$[F        UUU44US&'   GOUS):X  a  U" [H        S 45        GOUS*:X  Ga  U R                  5       S-
  n Sn!S+n"S n#SnSnU" S5      (       Ga  U" 5       nUc  U R                  S,5      eUS-:X  Ga8  U" S.5      (       a&  U RK                  S/S05      n#U RM                  U#S5        GOgU" S15      (       a  U RK                  S2S05      n#U RM                  U#S5        URN                  R                  U#5      n$U$c#  S3U#-  nU R                  U[	        U#5      S-   5      eURQ                  U$5      (       d  U R                  S4[	        U#5      S-   5      eURS                  U$U 5        U" [T        U$45        GM  U" 5       nUc  U R                  S,5      eU R                  S5U-   [	        U5      S-   5      eUS6:X  a  S+n!GOXUS:X  aB   U R                  c#  U R                  S7U R                  5       U -
  5      eU" 5       S2:X  a  OM>  GM  US8;   a  Sn%US.:X  ad  U" 5       nUc  U R                  S,5      eUS9;  a!  U R                  S:U-   [	        U5      S-   5      eS&n%URV                  n&U&c  URX                  Ul+        [[        XX#S-   5      nU%S:  a
  W&c  S Ul+        U" S25      (       d#  U R                  S;U R                  5       U -
  5      eUS1:X  a  U" [\        U%U445        O&U(       a  U" [^        U%U445        OU" [`        S<45        G	M  US*:X  Gan  U RK                  S2S05      n'U'Rc                  5       (       a  U'Re                  5       (       dU  U RM                  U'S5        URN                  R                  U'5      n(U(c#  S3U'-  nU R                  U[	        U'5      S-   5      eGO&[7        U'5      n(U((       d  U R                  S=[	        U'5      S-   5      eU([f        :  a#  S>U(-  nU R                  U[	        U'5      S-   5      eU(URh                  ;  a,  U R                  5       [	        U'5      -
  S-
  URh                  U('   U'Rc                  5       (       a  U'Re                  5       (       dc  SS KnUR                  S?U Rj                  (       a  [m        U'5      O
[o        U'5      U R                  5       [	        U'5      -
  S-
  4-  [p        US
-   S9  URS                  U(U 5        [s        XX#S-   5      n)U R                  S@5      (       a1  [s        XX#S-   5      n*U R                  S@:X  a  U R                  SA5      eOS n*U R                  S25      (       d#  U R                  S;U R                  5       U -
  5      eU" [t        U(U)U*445        GM  US/:X  a  S+n!Sn"OU[v        ;   d  US:X  a^  [y        XU5      n+U+cG  U(       a  U(       a#  U R                  SBU R                  5       U -
  5      eURz                  [|        -  nGMn  U+u  nnS+n!O!U R                  SCU-   [	        U5      S-   5      eU!(       a   UR                  U#5      nOS nU=(       d	    U[|        -  =(       a    U[|        -  (       + n-[[        XU-US-   5      nU R                  S25      (       d#  U R                  S;U R                  5       U -
  5      eUb  UR                  UU5        U"(       a  Ub   eU" [        U45        OTU" [@        UUUU445        OAUS:X  a  U" [<        [        45        O(USD:X  a  U" [<        [        45        O[;        SEW< 35      eGM  [        [	        U5      5      S S S&2    H<  n.UU.   u  n/n0U/[@        L d  M  U0u  nnnnUb  M"  U(       a  M+  U(       a  M4  UUU.U.S-   & M>     U$ ! [         a.  n,U R                  U,R                  [	        U#5      S-   5      S eS n,A,ff = f)FNTz|)#r   r   r   [r   z"Possible nested set at position %dr   
stacklevel^zunterminated character set]z-&~|zPossible set %s at position %d-
difference&intersection~zsymmetric differenceunionz&Possible set difference at position %dr   zbad character range ?)r   r   r   +r   r   rT   ,z"the repetition number is too largez"min repeat greater than max repeatzunsupported quantifier r   znothing to repeatzmultiple repeat.(Fzunexpected end of patternP<>
group name=)unknown group name %rr@   zunknown extension ?P:zmissing ), unterminated commentz=!<z=!zunknown extension ?<z"missing ), unterminated subpatternrJ   zbad group numberr   -bad character in group name %s at position %dr  z/conditional backref with more than two branchesz/global flags not at the start of the expressionzunknown extension ?$zunsupported special character )FrL   r.   r1   r   r*   r   r   
WHITESPACEr   SPECIAL_CHARSr   r   warningswarnFutureWarningr0   r   r]   RANGEr  NOT_LITERALr   r	  REPEAT_CHARSr   r   r   r   OverflowErrorAssertionErrorATr   r   
MIN_REPEATPOSSESSIVE_REPEAT
MAX_REPEATANYr   r   r   r=   rB   r   r    r+   r  ASSERT
ASSERT_NOTFAILURE	isdecimalr   r/   r!   r   rm   r   DeprecationWarningr  ra   FLAGS_parse_flagsr   r  r5   r   r:   r   AT_BEGINNINGAT_ENDr   )1rA   rO   r  r  firstr  subpatternappend	sourcegetr  _len_ordr   r   herer  	setappendr3  negatecode1thatcode2r   r   r   r   r   r   r  r   	add_flags	del_flagsr9   r  captureatomicr2   r3   dirr    condnamerg   rh   ri   r   errsub_verboser   re   rf   s1                                                    r$   r  r    s+   E"J "((

I,,KDD
{{<4<z!s{$;D|tt|  7d?6/DT"&gtDz23S[;;=1$DC

I {{c!86;;=H!fqj   !%F {< ,,'C'-{{}t';= =3;3!W_)&7Etv~&++2E' <0426#+:>#+ 6 ' & 1@3 3 *fqj &  $T$Z/Es##$;D|$ll+G+1;;=4+?A As{ 8r>$)!HQKE!%(!7DI"67Aw$ -fd ;3;+$MM H$*KKMA$5!7 -&1* * 
 !(d 3Qx7*eAh'.A=A4H$ll3D	AD	0IJJqBqBBw=A4H$ll3D	AD	0IJJur2h/0Qx2~ %ae$s v *CCyA~#a&)w"6$k3q6!9%=>$SV,JJq64.1 !"c+\!;;=Ds{SiSSiSS;;#%$gtDz%:;iSRkkV+)+%B kkV+s## ++/ik) !++/ B"3''$gtDz%:;KK%b'Ci'+,PQQb'Ci'+,PQQSy$ll+O+1;;=4+?A A %D%JKK!"#471:+ll#6#);;=4#7#d)#CE EAwqz\)ll#4#);;=4#7#d)#CE EAwqzZ'15a.y)Q=9D3",sC.>!?
2S!!"3c35E!F
2 #-sC.>!?
2S[c4[)S[KKMA%EGFDII3 {< ,,'BCC3;"3''%sLA--dA6$S))%sLA--dA6#oo11$7;"9D"@C"(,,sCIM"BB$//44"(,,/N/24y1}#> >223?((C9   ){<"(,,/J"KK$ll+AD+H+.t9q=: :S[#GS[!;;."(,,/P/5{{}u/D#F F$;#-!  U]Cs{({<"(,,/J"KKt+"(,,/E/L/24y1}#> > +0+A+A(+35:\\E2"6'A:FAQw+359E2&s++$ll+O+1;;=5+@B Bs{(&3();<(*sAh)?@('27S[%sLAH$..00X5E5E5G5G--h:$)OO$7$7$A	$,"9H"DC"(,,sCMA4E"FF - %(M	("(,,/A/28}q/@#B B$	1">"JC"(,,sCMA4E"FF$E,=,== &H = A "--i8 !) 2 2 4 49I9I9K9K+$MM O39==heHo!'X!>!B!D!D !3vz	 *  ..y&A%fWqjIH||C(("(!"L!;;#-"(,,/`"aa . #'!<<,,$ll+O+1;;=5+@B B$o	8W7U%VWS[#G!FU]dck(=E}$
"(,, 0C/5{{}u/D#F F #(++0@"@ +0(Iy#G ,,'<t'C'*4y1}6 6 I!OOD1E #E	4D(D > ),< <= 6+vzBA<<$$ll#G#);;=5#8: :   *}$} ,!23 *uiA.N!OPS[b,/0S[b&\* !t!MNNQ V 3z?#DbD)AB-/*E9i}YYyy%&
1ac" * G  I ,,swwD	A>DHIs   y 
y:)y55y:c                    U R                   nSnSnUS:w  a   [        U   nU R                  (       a  US:X  a  SnU R                  U5      eOUS:X  a  SnU R                  U5      eXF-  nU[        -  (       a   U[        -  U:w  a  SnU R                  U5      eU" 5       nUc  U R                  S5      eUS	;   a  O@U[        ;  a4  UR                  5       (       a  S
OSnU R                  U[        U5      5      eM  US:X  a  U=R                  U-  sl        g U[        -  (       a  U R                  SS5      eUS:X  a  U" 5       nUc  U R                  S5      eU[        ;  a4  UR                  5       (       a  S
OSnU R                  U[        U5      5      e [        U   nU[        -  (       a  SnU R                  U5      eXV-  nU" 5       nUc  U R                  S5      eUS:X  a  O@U[        ;  a4  UR                  5       (       a  S
OSnU R                  U[        U5      5      eM  US:X  d   eU[        -  (       a  U R                  SS5      eXE-  (       a  U R                  SS5      eXE4$ )Nr   r  r   z8bad inline flags: cannot use 'L' flag with a str patternr   z:bad inline flags: cannot use 'u' flag with a bytes patternz9bad inline flags: flags 'a', 'u' and 'L' are incompatiblezmissing -, : or )z)-:zunknown flagr,  z,bad inline flags: cannot turn on global flagr   zmissing flagz8bad inline flags: cannot turn off flags 'a', 'u' and 'L'z	missing :r.  z-bad inline flags: cannot turn off global flagz(bad inline flags: flag turned on and off)	r1   rE  r   r0   
TYPE_FLAGSisalphar*   r   GLOBAL_FLAGS)rA   rO   r   rK  rT  rU  flagr   s           r$   rF  rF  ~  sK   

IIIs{;D}}3;TC ,,s++  3;VC ,,s++Iz!	J(>4'GQll3'';D|ll#677u}5 (,n<Oll3D	22+ , s{y <llI1MMs{{<,,~..u$(LLNN.C,,sCI..;Dj Pll3''I;D|ll;//s{5 (,nKll3D	22  3;;<llJANNllEqIIr'   c                 L   [        U [        5      (       aN  U[        -  (       a  [        S5      eU[        -  (       d  U[
        -  nU$ U[
        -  (       a  [        S5      e U$ U[
        -  (       a  [        S5      eU[        -  (       a  U[        -  (       a  [        S5      eU$ )Nz)cannot use LOCALE flag with a str patternz(ASCII and UNICODE flags are incompatiblez,cannot use UNICODE flag with a bytes patternz'ASCII and LOCALE flags are incompatible)rb   r\   SRE_FLAG_LOCALEr   SRE_FLAG_ASCIISRE_FLAG_UNICODE)srcr   s     r$   	fix_flagsrf    s    #s?"HII~%%%E L %%GHH & L	 ##KLL?"u~'=FGGLr'   Nc                 *   [        U 5      nUc
  [        5       nXl        Xl        [	        X2U[
        -  S5      n[        XR                  R                  5      UR                  l        UR                  b#  UR                  S:X  d   eUR                  S5      eUR                  R                   HD  nXTR                  R                  :  d  M  SU-  n[        X`UR                  R                  U   5      e   U[        -  (       a  UR                  5         U$ )Nr   r,  zunbalanced parenthesisr   )r   r   r   r\   r  r  rf  rO   r   r0   r!   r+   SRE_FLAG_DEBUGr`   )r\   r   rO   rA   r9   gr   s          r$   parserj    s     s^F}KI6%*:":A>Ac77==1AGGM{{{{c!!!ll344WW  .2C!''"5"5a"899 !
 ~	Hr'   c           	        ^^^^^ [        U 5      mTR                  n/ m/ mTR                  nUUU4S jmUUUU4S jnTR                  n U" 5       nUc  GOUS   S:X  Ga  US   nUS:X  GaR  TR	                  S5      (       d  TR                  S	5      eTR                  S
S5      nUR                  5       (       a  UR                  5       (       d  TR                  US5         XX   n	O[        U5      n	U	[        :  a!  TR                  SU	-  [        U5      S-   5      eUR                  5       (       a  UR                  5       (       d`  SS Kn
U
R!                  STR"                  (       a  [%        U5      O
['        U5      TR)                  5       [        U5      -
  S-
  4-  [*        SS9  U" U	[        U5      S-   5        GOUUS:X  a\  TR,                  [.        ;   a&  Xb" 5       -  nTR,                  [.        ;   a	  Xb" 5       -  nU" [1        [        USS  S5      S-  5      5        OU[2        ;   a  SnTR,                  [2        ;   a  Xb" 5       -  nU[.        ;   ap  US   [.        ;   ac  TR,                  [.        ;   aO  Xb" 5       -  nSn[        USS  S5      nUS:  a  TR                  SU-  [        U5      5      eU" [1        U5      5        U(       d!  U" [        USS  5      [        U5      S-
  5        O' [1        [4        U   S   5      nU" U5        OU" U5        GM  T" 5         T$ ! [         a    [        SU-  5      S ef = f! [         a,    U[6        ;   a  TR                  SU-  [        U5      5      S e Nof = f)Nc                     > TR                   (       a!  TR                  SR                  T 5      5        O/TR                  SR                  T 5      R                  S5      5        T S S 2	 g )NrT   zlatin-1)r   r.   joinr   )literalr   r   s   r$   
addliteral"parse_template.<locals>.addliteral  sH    88MM"'''*+ MM"'''*11)<=AJr'   c                    > U TR                   :  a  TR                  SU -  U5      eT" 5         TR                  U 5        g )Nr   )r+   r0   r.   )rv   r   ro  patternr   r   s     r$   addgroup parse_template.<locals>.addgroup  s7    7>>!''6>DDer'   Tr   r   r   ri  r(  z	missing <r)  r*  r-  r   r/     r  r   r   r   Fr   r   r   )r   r1   r.   
groupindexr   r0   r   rC  r   r   r   r   r   r/   r*   r3  r4  r   rm   r   r   rD  r   r   r   r   r   r   )rA   rr  sgetlappendrs  rv  r   r   r2   rv   r3  isoctalro  rn  r   r   s    `          @@@@r$   parse_templaterz    s9    	&A55DFGnnG 
 ##J
v<7d?QACxwws||''+..zz#|4((T\\^^$$T1-S * 0  IE	)gg&BU&J&)$i!m5 5 NN,,' K+,88T$ZtVVXD	1A577 /1	 &  D	A.c66Y&DFNDvv*CQR!,t345f66V#DFNDY47i+?)+"&QR!,u9"#'' +:<@+ABEd)#M MASab]CIM:Swt}Q/0D DMy z LM_ $ S()@4)GHdRSP   SL(ggo&<c$iHdR )Ss   #L  .L=  L:=3M32M3)F)r   N);__doc__
_constantsr2  r8  	frozensetr   r   r   r   r1  r<  r>  r=  r   r?  r6  r]   r   r7  CATEGORYr   r   r   r;  AT_BEGINNING_STRINGAT_BOUNDARYAT_NON_BOUNDARYCATEGORY_DIGITCATEGORY_NOT_DIGITCATEGORY_SPACECATEGORY_NOT_SPACECATEGORY_WORDCATEGORY_NOT_WORDAT_END_STRINGr   SRE_FLAG_IGNORECASErb  SRE_FLAG_MULTILINESRE_FLAG_DOTALLr  rc  rd  rE  r]  rh  r_  r   r   rL   r   r   r   r  r  r  rF  rf  rj  rz  rJ   r'   r$   <module>r     s   & 	<	 j!	./	OP}%
*j2CDEUBhGH
 SYSYSYSYSYSYSYSY	 #$ (N+,-(./01(N+,-(./01(M*+,(-./0
 
						
	 o-0@@
 "< "<Hu unP6 P6d:>xK>Z&:x}~: x 6Tr'   