
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
U
    ¡ê,a&�  ã                   @   sÔ  d Z ddlT dZdZedƒZedƒZedƒZedƒZed	ƒZ	ee
ehƒZeeeeeeehƒZeed
ƒfeedƒfeedƒfeedƒfeedƒfeedƒfeedƒfeedƒfdœZeefeefeefeeefgfeeefgfeeefgfeeefgfeeefgfeeefgfee fdœ
Z!e"e#e$e%e&e'e(e)dœZ*e'e#B e)B Z+e,e(B Z-G dd„ de.ƒZ/G dd„ dƒZ0G dd„ dƒZ1G dd„ dƒZ2dd„ Z3dd „ Z4d!d"„ Z5d#d$„ Z6d3d&d'„Z7d(d)„ Z8d*d+„ Z9d4d-d.„Z:d/d0„ Z;d1d2„ Z<d,S )5zInternal support module for sreé    )Ú*z.\[{()*+?^$|z*+?{Ú
0123456789Z01234567Z0123456789abcdefABCDEFZ4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZz 	
úúúÚ
úú	úú\)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ÚtÚuc                   @   s   e Zd ZdS )ÚVerboseN)Ú__name__Ú
__module__Ú__qualname__© r   r   ú./opt/alt/python38/lib64/python3.8/sre_parse.pyr   G   s   r   c                   @   sB   e Zd Zdd„ Zedd„ ƒZddd„Zdd	„ Zd
d„ Zdd„ Z	dS )ÚStatec                 C   s   d| _ i | _d g| _d | _d S )Nr   )ÚflagsÚ	groupdictÚgroupwidthsÚlookbehindgroups©Úselfr   r   r   Ú__init__L   s    zState.__init__c                 C   s
   t | jƒS ©N)Úlenr   r    r   r   r   ÚgroupsQ   s    zState.groupsNc                 C   sb   | j }| j d ¡ | j tkr$tdƒ‚|d k	r^| j |d ¡}|d k	rTtd|||f ƒ‚|| j|< |S )Nztoo many groupsz7redefinition of group name %r as group %d; was group %d)r%   r   ÚappendÚ	MAXGROUPSÚerrorr   Úget)r!   ÚnameÚgidÚogidr   r   r   Ú	opengroupT   s    
ÿ
zState.opengroupc                 C   s   |  ¡ | j|< d S r#   )Úgetwidthr   )r!   r+   Úpr   r   r   Ú
closegroup`   s    zState.closegroupc                 C   s   || j k o| j| d k	S r#   )r%   r   )r!   r+   r   r   r   Ú
checkgroupb   s    zState.checkgroupc                 C   s6   | j d k	r2|  |¡s| d¡‚|| j kr2| d¡‚d S )Núcannot refer to an open groupz?cannot refer to group defined in the same lookbehind subpattern)r   r1   r(   )r!   r+   Úsourcer   r   r   Úchecklookbehindgroupe   s
    



zState.checklookbehindgroup)N)
r   r   r   r"   Úpropertyr%   r-   r0   r1   r4   r   r   r   r   r   J   s   

r   c                   @   s`   e Zd Zddd„Zd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S )Ú
SubPatternNc                 C   s"   || _ |d krg }|| _d | _d S r#   )ÚstateÚdataÚwidth)r!   r7   r8   r   r   r   r"   o   s
    zSubPattern.__init__r   c                 C   sŽ  d}t tf}| jD �]t\}}t|d t|ƒ dd� |tkrltƒ  |D ]"\}}t|d d t|ƒ |ƒ qFq|tkr´tƒ  t|d ƒD ]*\}}|r¢t|d d ƒ | |d ¡ q†q|t	k�r|\}}	}
td|ƒ |	 |d ¡ |
�rˆt|d d ƒ |
 |d ¡ qt
||ƒ�r~d}|D ]T}t
|tƒ�rJ|�s6tƒ  | |d ¡ d}n"|�s\td	dd� t|dd� d}�q|�sˆtƒ  qtd|ƒ qd S )
NTz  Ú )Úendé   ÚORÚELSEFú )ÚtupleÚlistr8   ÚprintÚstrÚINÚBRANCHÚ	enumerateÚdumpÚGROUPREF_EXISTSÚ
isinstancer6   )r!   ÚlevelÚnlÚseqtypesÚopÚavr   r   Ú	condgroupÚitem_yesÚitem_nor   r   r   rG   v   sH    


zSubPattern.dumpc                 C   s
   t | jƒS r#   )Úreprr8   r    r   r   r   Ú__repr__ž   s    zSubPattern.__repr__c                 C   s
   t | jƒS r#   )r$   r8   r    r   r   r   Ú__len__    s    zSubPattern.__len__c                 C   s   | j |= d S r#   ©r8   ©r!   Úindexr   r   r   Ú__delitem__¢   s    zSubPattern.__delitem__c                 C   s&   t |tƒrt| j| j| ƒS | j| S r#   )rI   Úslicer6   r7   r8   rV   r   r   r   Ú__getitem__¤   s    
zSubPattern.__getitem__c                 C   s   || j |< d S r#   rU   ©r!   rW   Úcoder   r   r   Ú__setitem__¨   s    zSubPattern.__setitem__c                 C   s   | j  ||¡ d S r#   )r8   Úinsertr[   r   r   r   r^   ª   s    zSubPattern.insertc                 C   s   | j  |¡ d S r#   )r8   r&   )r!   r\   r   r   r   r&   ¬   s    zSubPattern.appendc           	      C   sä  | j d k	r| j S d }}| jD �]¢\}}|tkr|td }d}|d D ]$}| ¡ \}}t||ƒ}t||ƒ}qD|| }|| }q|tkr¢| ¡ \}}|| }|| }q|tkrÌ|d  ¡ \}}|| }|| }q|t	k�r|d  ¡ \}}|||d   }|||d   }q|t
k�r$|d }|d }q|tk�rP| jj| \}}|| }|| }q|tk�r´|d  ¡ \}}|d d k	�rž|d  ¡ \}}t||ƒ}t||ƒ}nd}|| }|| }q|tkr �qÄqt|td ƒt|tƒf| _ | j S )Nr   r<   éÿÿÿÿé   )r9   r8   rE   Ú	MAXREPEATr.   ÚminÚmaxÚCALLÚ
SUBPATTERNÚ_REPEATCODESÚ
_UNITCODESÚGROUPREFr7   r   rH   ÚSUCCESS)	r!   ÚloÚhirM   rN   r   ÚjÚlÚhr   r   r   r.   ®   sZ    












zSubPattern.getwidth)N)r   )r   r   r   r"   rG   rS   rT   rX   rZ   r]   r^   r&   r.   r   r   r   r   r6   m   s   

(r6   c                   @   sb   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Ze	dd„ ƒZ
dd„ Zdd„ Zddd„ZdS )Ú	Tokenizerc                 C   s@   t |tƒ| _|| _| js"t|dƒ}|| _d| _d | _|  ¡  d S )NÚlatin1r   )rI   rC   ÚistextÚstringÚdecoded_stringrW   ÚnextÚ_Tokenizer__next)r!   rr   r   r   r   r"   à   s    
zTokenizer.__init__c                 C   s˜   | j }z| j| }W n tk
r0   d | _Y d S X |dkr„|d7 }z|| j| 7 }W n. tk
r‚   td| jt| jƒd ƒd ‚Y nX |d | _ || _d S )Nr   r<   zbad escape (end of pattern))rW   rs   Ú
IndexErrorrt   r(   rr   r$   )r!   rW   Úcharr   r   r   Ú__nexté   s&     ÿÿ
zTokenizer.__nextc                 C   s   || j kr|  ¡  dS dS )NTF©rt   ru   )r!   rw   r   r   r   Úmatchù   s    
zTokenizer.matchc                 C   s   | j }|  ¡  |S r#   ry   )r!   Úthisr   r   r   r)   þ   s    zTokenizer.getc                 C   s8   d}t |ƒD ]&}| j}||kr" q4||7 }|  ¡  q|S ©Nr:   )Úrangert   ru   )r!   ÚnÚcharsetÚresultÚ_Úcr   r   r   Úgetwhile  s    
zTokenizer.getwhilec                 C   sl   d}| j }|  ¡  |d kr@|s,|  d| ¡‚|  d| t|ƒ¡‚||kr^|sh|  d| d¡‚qh||7 }q|S )Nr:   zmissing zmissing %s, unterminated namer<   )rt   ru   r(   r$   )r!   Ú
terminatorr*   r€   r‚   r   r   r   Úgetuntil  s    
ÿ
zTokenizer.getuntilc                 C   s   | j t| jpdƒ S r|   ©rW   r$   rt   r    r   r   r   Úpos  s    zTokenizer.posc                 C   s   | j t| jpdƒ S r|   r†   r    r   r   r   Útell  s    zTokenizer.tellc                 C   s   || _ |  ¡  d S r#   )rW   ru   rV   r   r   r   Úseek   s    zTokenizer.seekr   c                 C   s   t || j|  ¡ | ƒS r#   )r(   rr   rˆ   )r!   ÚmsgÚoffsetr   r   r   r(   $  s    zTokenizer.errorN)r   )r   r   r   r"   ru   rz   r)   rƒ   r…   r5   r‡   rˆ   r‰   r(   r   r   r   r   ro   ß   s   		
ro   c              	   C   s¬  t  |¡}|r|S t |¡}|r0|d tkr0|S �zJ|dd… }|dkr�||  dt¡7 }t|ƒdkrx|  d| t|ƒ¡‚tt	|dd … dƒfW S |dkræ| j
ræ||  dt¡7 }t|ƒd	krÎ|  d| t|ƒ¡‚tt	|dd … dƒfW S |d
k�rN| j
�rN||  dt¡7 }t|ƒdk�r*|  d| t|ƒ¡‚t	|dd … dƒ}t|ƒ t|fW S |dk�rÚ| j
�rÚdd l}|  d¡�s~|  d¡‚|  dd¡}zt| |¡ƒ}W n2 tk
�rÎ   |  d| t|ƒtdƒ ¡‚Y nX t|fW S |tk�r.||  dt¡7 }t	|dd … dƒ}|dk�r$|  d| t|ƒ¡‚t|fW S |tk�r<t‚t|ƒdk�rz|tk�rh|  d| t|ƒ¡‚tt|d ƒfW S W n tk
�r’   Y nX |  d| t|ƒ¡‚d S )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)ÚESCAPESr)   Ú
CATEGORIESrD   rƒ   Ú	HEXDIGITSr$   r(   ÚLITERALÚintrq   ÚchrÚunicodedatarz   r…   ÚordÚlookupÚKeyErrorÚ	OCTDIGITSÚDIGITSÚ
ValueErrorÚASCIILETTERS)r3   Úescaper\   r‚   r£   Úcharnamer   r   r   Ú_class_escape'  sp    




ÿ



ÿÿ


r­   c              	   C   sf  t  |¡}|r|S t |¡}|r$|S �z|dd… }|dkr„||  dt¡7 }t|ƒdkrl|  d| t|ƒ¡‚tt|dd … dƒfW S |dkrÚ| j	rÚ||  dt¡7 }t|ƒdkrÂ|  d| t|ƒ¡‚tt|dd … dƒfW S |d	k�rB| j	�rB||  d
t¡7 }t|ƒdk�r|  d| t|ƒ¡‚t|dd … dƒ}t
|ƒ t|fW S |dk�rÎ| j	�rÎdd l}|  d¡�sr|  d¡‚|  dd¡}zt| |¡ƒ}W n2 tk
�rÂ   |  d| t|ƒtdƒ ¡‚Y nX t|fW S |dk�r ||  dt¡7 }tt|dd … d
ƒfW S |tk�rö| jtk�r�||  ¡ 7 }|d tk�r�|d tk�r�| jtk�r�||  ¡ 7 }t|dd … d
ƒ}|dk�r†|  d| t|ƒ¡‚t|fW S t|dd … ƒ}||jk �rÞ| |¡�sÈ|  dt|ƒ¡‚| || ¡ t|fW S |  d| t|ƒd ¡‚t|ƒdk�r4|tk�r"|  d| t|ƒ¡‚tt|d ƒfW S W n tk
�rL   Y nX |  d| t|ƒ¡‚d S )Nr<   r`   r   rŒ   r�   rŽ   r   r�   r�   r‘   r’   r“   r   r”   r•   r–   r—   r˜   r™   Ú0rš   r›   r2   úinvalid group reference %drœ   )rž   r)   r�   rƒ   rŸ   r$   r(   r    r¡   rq   r¢   r£   rz   r…   r¤   r¥   r¦   r§   r¨   rt   r%   r1   r4   rh   rª   r©   )r3   r«   r7   r\   r‚   r£   r¬   Úgroupr   r   r   Ú_escapec  sŽ    




ÿ



ÿ
ÿþ
ÿ

r±   c                 C   s   t t | ¡ƒS r#   )rA   ÚdictÚfromkeys)Úitemsr   r   r   Ú_uniq°  s    rµ   c                 C   sV  g }|j }| j}|  ¡ }|t| |||d | o2| ƒƒ |dƒsqDqt|ƒdkrX|d S t|ƒ}d }	|D ].}
|
st q¸|	d kr†|
d }	qh|
d |	krh q¸qh|D ]
}
|
d= qœ|  |	¡ q`q¸q`g }|D ]h}
t|
ƒdkrÖ �q@|
d \}}|tkrú|  ||f¡ qÀ|tk�r"|d d tk	�r"| 	|¡ qÀ �q@qÀ|  tt
|ƒf¡ |S |  td |ff¡ |S )Nr<   ú|r   )r&   rz   rˆ   Ú_parser$   r6   r    rD   ÚNEGATEÚextendrµ   rE   )r3   r7   ÚverboseÚnestedr´   ÚitemsappendÚsourcematchÚstartÚ
subpatternÚprefixÚitemÚsetrM   rN   r   r   r   Ú
_parse_sub³  sN    
ÿ

rÃ   Fc           /   
   C   s”  t |ƒ}|j}| j}| j}t}	t}
| j}|d kr4�q*|dkr@�q*|ƒ  |rx|tkrTq"|dkrx|ƒ }|d ksv|dkr\q"q\q"|d dkršt| ||ƒ}||ƒ q"|t	kr´|t
|
|ƒfƒ q"|dk�rØ|  ¡ d }g }|j}| jdk�rdd l}|jd|  ¡  t|d	 d
� |dƒ}|ƒ }|d k�r0|  d|  ¡ | ¡‚|dk�rF|�rF�qbn˜|d dk�r`t| |ƒ}n~|�rÒ|dk�rÒ| j|k�rÒdd l}|jd|dk�r˜dn|dk�r¦dn|dk�r´dnd|  ¡ d f t|d	 d
� t
|
|ƒf}|dƒ�r<|ƒ }|d k�r|  d|  ¡ | ¡‚|dk�rL|d tk�r0|d d }||ƒ |t
|
dƒfƒ �qb|d dk�rft| |ƒ}n>|dk�r˜dd l}|jd|  ¡ d  t|d	 d
� t
|
|ƒf}|d t
k�sÀ|d t
k�rèd||f }|  |t|ƒd t|ƒ ¡‚|d }|d }||k �r*d||f }|  |t|ƒd t|ƒ ¡‚|t||ffƒ n"|d tk�rV|d d }||ƒ �qt|ƒ}|	|ƒdk�r´|d d t
k�r´|�r¦|t|d d fƒ n||d ƒ n"|�rÊ| dtd f¡ |t|fƒ q"|tk�r.|  ¡ }|dk�r d\}}�nB|dk�rdt }}�n*|dk�r0dt }}�n|dk�r4| jdk�rX|t
|
|ƒfƒ q"dt }}d  }}| jtk�r„||ƒ 7 }�qj|d!ƒ�rª| jtk�r®||ƒ 7 }�qŽn|}|dƒ�sÔ|t
|
|ƒfƒ |  |¡ q"|�rôt|ƒ}|tk�rôtd"ƒ‚|�rBt|ƒ}|tk�rtd"ƒ‚||k �rB|  d#|  ¡ | ¡‚ntd$|f ƒ‚|�rV|d%d … }nd }|�rr|d d tk�rŽ|  d&|  ¡ | t|ƒ ¡‚|d d tk�r¼|  d'|  ¡ | t|ƒ ¡‚|d d t k�rü|d d \}}}}|d k�rü|�sü|�sü|}|dƒ�rt!|||ff|d%< nt"|||ff|d%< q"|d(k�rF|t#d fƒ q"|d)k�rê|  ¡ d } d*}d }!d}d}|dƒ�r|ƒ }|d k�r�|  d+¡‚|d,k�r¸|d-ƒ�rØ|  $d.d/¡}!|! %¡ �s´d0|! }|  |t|!ƒd ¡‚nÜ|d1ƒ�r‚|  $d2d/¡}!|! %¡ �sd0|! }|  |t|!ƒd ¡‚|j& |!¡}"|"d k�rFd3|! }|  |t|!ƒd ¡‚| '|"¡�sf|  d4t|!ƒd ¡‚| (|"| ¡ |t)|"fƒ q"n2|ƒ }|d k�rœ|  d+¡‚|  d5| t|ƒd ¡‚�nd|d6k�rÊd }�nR|dk�r| jd k�rô|  d7|  ¡ |  ¡‚|ƒ d2k�rÔq"�qÔq"�n|d8k�rød}#|d-k�r||ƒ }|d k�r>|  d+¡‚|d9k�r`|  d:| t|ƒd ¡‚d%}#|j*}$|$d k�r||j+|_*t,| |||d ƒ}|#dk �r¨|$d k�r¨d |_*|d2ƒ�sÆ|  d;|  ¡ |  ¡‚|d1k�râ|t-|#|ffƒ q"|t.|#|ffƒ q"�n$|d)k�
rj|  $d2d/¡}%|% %¡ �	rL|j& |%¡}&|&d k�	rÜd3|% }|  |t|%ƒd ¡‚n�zt|%ƒ}&|&dk �	rdt/‚W n4 t/k
�	rš   d0|% }|  |t|%ƒd ¡d ‚Y nX |&�	s¶|  d<t|%ƒd ¡‚|&t0k�	rÜd=|& }|  |t|%ƒd ¡‚| (|&| ¡ t1| |||d ƒ}'|  d>¡�
r0t1| |||d ƒ}(| jd>k�
r4|  d?¡‚nd }(|  d2¡�
sT|  d;|  ¡ |  ¡‚|t2|&|'|(ffƒ q"n²|t3k�
s~|dk�rt4| ||ƒ})|)d k�
rö|�
r |�
râdd l}|jd@| j5d dA… t| j5ƒdAk�
rÎdBnd f t6|d	 d
� |j7t8@ r"|s"t9‚q"|)\}}d }n|  dC| t|ƒd ¡‚|d k	�rrz| :|!¡}W n< tk
�rp }* z|  |*j;t|!ƒd ¡d ‚W 5 d }*~*X Y nX |�s‚|t8@ �oŠ|t8@  }+t,| ||+|d ƒ}|  d2¡�s¾|  d;|  ¡ |  ¡‚|d k	�rÔ| <||¡ |t ||||ffƒ q"|dk�r|tt=fƒ q"|dDk�r|tt>fƒ q"tdE|f ƒ‚q"t?t|ƒƒd d d%… D ]N},||, \}-}.|-t k�r@|.\}}}}|d k�r@|�s@|�s@|||,|,d …< �q@|S )FNz|)ú#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 %s-%sú?)r   r<   r   ú+r”   r–   r:   ú,z"the repetition number is too largez"min repeat greater than max repeatzunsupported quantifier %rr_   znothing to repeatzmultiple repeatÚ.ú(Tzunexpected end of patternÚPú<ú>ú
group nameúbad character in group name %rú=ú)úunknown group name %rr2   zunknown extension ?Pú:zmissing ), unterminated commentz=!<z=!zunknown extension ?<z"missing ), unterminated subpatternzbad group numberr¯   r¶   z/conditional backref with more than two branchesz-Flags not at the start of the expression %r%sé   z (truncated)zunknown extension ?ú$z unsupported special character %r)@r6   r&   r)   rz   r$   r¤   rt   Ú
WHITESPACEr±   ÚSPECIAL_CHARSr    rˆ   ÚwarningsÚwarnÚFutureWarningr(   r­   rD   ÚRANGErµ   ÚNOT_LITERALr^   r¸   ÚREPEAT_CHARSra   r¨   r‰   r¡   ÚOverflowErrorÚAssertionErrorÚATrf   re   Ú
MIN_REPEATÚ
MAX_REPEATÚANYr…   Úisidentifierr   r1   r4   rh   r   r%   rÃ   ÚASSERTÚ
ASSERT_NOTr©   r'   r·   rH   ÚFLAGSÚ_parse_flagsrr   ÚDeprecationWarningr   ÚSRE_FLAG_VERBOSEr   r-   rŠ   r0   ÚAT_BEGINNINGÚAT_ENDr}   )/r3   r7   rº   r»   Úfirstr¿   ÚsubpatternappendÚ	sourcegetr½   Ú_lenÚ_ordr{   r\   ÚhererÂ   Ú	setappendrá   ÚnegateÚcode1ÚthatÚcode2rŠ   rj   rk   rb   rc   rw   rÁ   r°   Ú	add_flagsÚ	del_flagsr/   r¾   r*   r+   Údirr   ÚcondnamerO   rP   rQ   r   ÚerrÚsub_verboser   rM   rN   r   r   r   r·   í  s|   


 þ

ÿ
û ù	


ÿ


ÿ ý
 












ÿÿÿ












ÿ



ÿ


ÿ






ÿ




ÿ





ÿ

ÿ
þ û

ÿ
*ÿ
ÿ



r·   c                 C   sú  | j }d}d}|dkrÈt| }| jr<|dkrRd}|  |¡‚n|dkrRd}|  |¡‚||O }|t@ r||t@ |kr|d}|  |¡‚|ƒ }|d kr”|  d¡‚|d	kržqÈ|tkr| ¡ r²d
nd}|  |t|ƒ¡‚q|dkrâ| j|O  _d S |t@ rö|  dd¡‚|dk�rÆ|ƒ }|d k�r|  d¡‚|tk�rF| ¡ �r2d
nd}|  |t|ƒ¡‚t| }|t@ �rfd}|  |¡‚||O }|ƒ }|d k�rˆ|  d¡‚|dk�r–�qÆ|tk�rF| ¡ �r®d
nd}|  |t|ƒ¡‚�qF|t@ �rÜ|  dd¡‚||@ �rò|  dd¡‚||fS )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)	r)   rð   rq   r(   Ú
TYPE_FLAGSÚisalphar$   r   ÚGLOBAL_FLAGS)r3   r7   rw   rø   r  r  ÚflagrŠ   r   r   r   rñ   ]  sl    














rñ   c                 C   sj   t | tƒr>|t@ rtdƒ‚|t@ s,|tO }qf|t@ rftdƒ‚n(|t@ rNtdƒ‚|t@ rf|t@ rftdƒ‚|S )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)rI   rC   ÚSRE_FLAG_LOCALEr©   ÚSRE_FLAG_ASCIIÚSRE_FLAG_UNICODE)Úsrcr   r   r   r   Ú	fix_flags™  s    


r  Nc                 C   s¶   t | ƒ}|d krtƒ }||_| |_zt|||t@ dƒ}W nB tk
rz   tƒ }|tB |_| |_| d¡ t||ddƒ}Y nX t| |j	jƒ|j	_|j
d k	r¢| d¡‚|t@ r²| ¡  |S )Nr   Tzunbalanced parenthesis)ro   r   r   rC   rÃ   ró   r   r‰   r  r7   rt   r(   ÚSRE_FLAG_DEBUGrG   )rC   r   r7   r3   r/   r   r   r   Úparse©  s&    



r  c                    sð  t | ƒ‰ˆj}g ‰ g ‰g ‰ˆj}‡ ‡‡‡‡fdd„}ˆj}|ƒ }|d krL�q¸|d dk�r®|d }|dk�rJd}ˆ d¡s„ˆ d	¡‚ˆ d
d¡}| ¡ rÈz|| }	W n  tk
rÄ   t	d| ƒ‚Y nX nlzt
|ƒ}	|	dk rÞt‚W n0 tk
�r   ˆ d| t|ƒd ¡d ‚Y nX |	tk�r4ˆ d|	 t|ƒd ¡‚||	t|ƒd ƒ �q¶|dk�r¢ˆjtk�r€||ƒ 7 }ˆjtk�r€||ƒ 7 }|tt
|dd … dƒd@ ƒƒ �q¶|tk�rZd}
ˆjtk�r4||ƒ 7 }|tk�r4|d tk�r4ˆjtk�r4||ƒ 7 }d}
t
|dd … dƒ}|dk�r(ˆ d| t|ƒ¡‚|t|ƒƒ |
�s¬|t
|dd … ƒt|ƒd ƒ nRztt| d ƒ}W n4 tk
�r¢   |tk�ržˆ d| t|ƒ¡‚Y nX ||ƒ q:||ƒ q:ˆ�rÎˆ d ˆ¡¡ t| tƒ�sèdd„ ˆD ƒ‰ˆ ˆfS )Nc                    sX   | ˆj krˆ d|  |¡‚ˆr8ˆ d ˆ¡¡ ˆd d …= ˆ  tˆƒ| f¡ ˆ d ¡ d S )Nr¯   r:   )r%   r(   r&   Újoinr$   )rW   r‡   ©r%   ÚliteralÚliteralsr   r7   r   r   ÚaddgroupÒ  s    

z parse_template.<locals>.addgroupr   r   r<   Úgr:   rÕ   z	missing <rÖ   r×   rÛ   rØ   r¯   r®   r‘   rš   Fr`   Tr›   rœ   c                 S   s"   g | ]}|d krd n|  d¡‘qS )Nzlatin-1)Úencode)Ú.0r   r   r   r   Ú
<listcomp>  s     z"parse_template.<locals>.<listcomp>)ro   r)   r&   Ú
groupindexrz   r(   r…   rí   r¦   rv   r¡   r©   r$   r'   rt   r§   r¢   r¨   r�   rª   r  rI   rC   )r3   r7   ÚsgetÚlappendr  r  r{   r‚   r*   rW   Úisoctalr   r  r   Úparse_templateÉ  s–    




ÿÿ


ÿ


"

ÿ

ÿÿ 


r  c                 C   sv   |j }|jd d… }| \}}|d d … }z"|D ]\}}||ƒp@|||< q.W n  tk
rj   td| ƒ‚Y nX | |¡S )Nr   r¯   )r°   rr   rv   r(   r  )Útemplaterz   r  Úemptyr%   r  rW   r°   r   r   r   Úexpand_template  s    r"  )F)r   N)=Ú__doc__Úsre_constantsrà   ræ   Ú	frozensetr¨   r§   rŸ   rª   rß   rê   rë   rf   rì   rä   rD   r    rå   ÚCATEGORYrg   r¤   r�   ré   ZAT_BEGINNING_STRINGZAT_BOUNDARYZAT_NON_BOUNDARYZCATEGORY_DIGITZCATEGORY_NOT_DIGITZCATEGORY_SPACEZCATEGORY_NOT_SPACEZCATEGORY_WORDZCATEGORY_NOT_WORDZAT_END_STRINGrž   ÚSRE_FLAG_IGNORECASEr  ÚSRE_FLAG_MULTILINEÚSRE_FLAG_DOTALLró   r  ÚSRE_FLAG_TEMPLATEr  rð   r  r  r	  Ú	Exceptionr   r   r6   ro   r­   r±   rµ   rÃ   r·   rñ   r  r  r  r"  r   r   r   r   Ú<module>   sr   







øöö#rH<M:
  r<
 U