3 \��� @s�dZddlTdZdZed�Zed�Zed�Zed�Zed �Z ee e h�Z ee eeeeeh�Zeed �feed �feed �feed �feed�feed�feed�feed�fd�Zeefeefeefeeefgfeeefgfeeefgfeeefgfeeefgfeeefgfee fd� Z!e"e#e$e%e&e'e(e)d�Z*e'e#Be)Be+Be(BZ,Gdd�de-�Z.Gdd�d�Z/Gdd�d�Z0Gdd�d�Z1dd�Z2dd �Z3d!d"�Z4d#d$�Z5d3d&d'�Z6d(d)�Z7d*d+�Z8d4d-d.�Z9d/d0�Z:d1d2�Z;d,S)5zInternal support module for sre�)�*z .\[{()*+?^$|z*+?{� 0123456789Z01234567Z0123456789abcdefABCDEFZ4abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZz ��� � � � � �\)z\az\bz\fz\nz\rz\tz\vz\\) z\Az\bz\Bz\dz\Dz\sz\Sz\wz\Wz\Z)�i�L�m�s�x�a�t�uc@s eZdZdS)�VerboseN)�__name__� __module__� __qualname__�rr�!/usr/lib64/python3.6/sre_parse.pyrGsrc@sBeZdZdd�Zedd��Zddd�Zdd �Zd d �Zd d �Z dS)�PatterncCsd|_i|_dg|_d|_dS)Nr)�flags� groupdict� groupwidths�lookbehindgroups)�selfrrr�__init__LszPattern.__init__cCs t|j�S)N)�lenr)rrrr�groupsQszPattern.groupsNcCsb|j}|jjd�|jtkr$td��|dk r^|jj|d�}|dk rTtd|||f��||j|<|S)Nztoo many groupsz7redefinition of group name %r as group %d; was group %d)r"r�append� MAXGROUPS�errorr�get)r�name�gid�ogidrrr� opengroupTs   zPattern.opengroupcCs|j�|j|<dS)N)�getwidthr)rr(�prrr� closegroup`szPattern.closegroupcCs||jko|j|dk S)N)r"r)rr(rrr� checkgroupbszPattern.checkgroupcCs6|jdk r2|j|�s|jd��||jkr2|jd��dS)Nzcannot refer to an open groupz?cannot refer to group defined in the same lookbehind subpattern)rr.r%)rr(�sourcerrr�checklookbehindgroupes     zPattern.checklookbehindgroup)N) rrrr �propertyr"r*r-r.r0rrrrrJs   rc@s`eZdZddd�Zddd�Zdd�Zd d �Zd d �Zd d�Zdd�Z dd�Z dd�Z dd�Z dS)� SubPatternNcCs"||_|dkrg}||_d|_dS)N)�pattern�data�width)rr3r4rrrr os zSubPattern.__init__rc Cs�d}ttf}�x�|jD�]�\}}t|dt|�dd�|tkrtt�x*|D]"\}}t|ddt|�|�qLWq|tkr�t�x:t|d�D]*\}}|r�t|dd�|j|d�q�Wq|t k�r|\}} } td|�| j|d�| �r�t|dd�| j|d�qt ||��r�d}x\|D]T}t |t ��rX|�sDt�|j|d�d}n"|�sjtd dd�t|dd�d}�q(W|�s�t�qtd|�qWdS) NTz �)�end��OR�ELSEF� ) �tuple�listr4�print�str�IN�BRANCH� enumerate�dump�GROUPREF_EXISTS� isinstancer2) r�level�nl�seqtypes�op�avrr � condgroup�item_yes�item_norrrrCusH          zSubPattern.dumpcCs t|j�S)N)�reprr4)rrrr�__repr__�szSubPattern.__repr__cCs t|j�S)N)r!r4)rrrr�__len__�szSubPattern.__len__cCs |j|=dS)N)r4)r�indexrrr� __delitem__�szSubPattern.__delitem__cCs&t|t�rt|j|j|�S|j|S)N)rE�slicer2r3r4)rrQrrr� __getitem__�s zSubPattern.__getitem__cCs||j|<dS)N)r4)rrQ�coderrr� __setitem__�szSubPattern.__setitem__cCs|jj||�dS)N)r4�insert)rrQrUrrrrW�szSubPattern.insertcCs|jj|�dS)N)r4r#)rrUrrrr#�szSubPattern.appendc Cs�|jdk r|jSd}}�x�|jD�]�\}}|tkr�td}d}x0|dD]$}|j�\}}t||�}t||�}qJW||}||}q"|tkr�|j�\}}||}||}q"|tkr�|dj�\}}||}||}q"|t k�r|dj�\}}|||d}|||d}q"|t k�r,|d}|d}q"|t k�rX|j j |\}}||}||}q"|tk�r�|dj�\}}|ddk �r�|dj�\}}t||�}t||�}nd}||}||}q"|tkr"Pq"Wt|td�t|t�f|_|jS)Nrr8������)r5r4rA� MAXREPEATr+�min�max�CALL� SUBPATTERN� _REPEATCODES� _UNITCODES�GROUPREFr3rrD�SUCCESS) r�lo�hirIrJr �j�l�hrrrr+�sZ                zSubPattern.getwidth)N)r) rrrr rCrOrPrRrTrVrWr#r+rrrrr2ms  (r2c@sbeZdZdd�Zdd�Zdd�Zdd�Zd d �Zd d �Ze d d��Z dd�Z dd�Z ddd�Z dS)� TokenizercCs@t|t�|_||_|js"t|d�}||_d|_d|_|j�dS)N�latin1r)rEr?�istext�string�decoded_stringrQ�next�_Tokenizer__next)rrkrrrr �s  zTokenizer.__init__cCs�|j}y|j|}Wntk r.d|_dSX|dkr�|d7}y||j|7}Wn.tk r�td|jt|j�d�d�YnX|d|_||_dS)Nr r8zbad escape (end of pattern))rQrl� IndexErrorrmr%rkr!)rrQ�charrrr�__next�s zTokenizer.__nextcCs||jkr|j�dSdS)NTF)rmrn)rrprrr�match�s zTokenizer.matchcCs|j}|j�|S)N)rmrn)r�thisrrrr&�sz Tokenizer.getcCs:d}x0t|�D]$}|j}||kr"P||7}|j�qW|S)Nr6)�rangermrn)r�n�charset�result�_�crrr�getwhiles zTokenizer.getwhilecCshd}x^|j}|j�|dkr>|s*|jd��|jd|t|���||krX|sV|jdd��P||7}qW|S)Nr6zmissing group namezmissing %s, unterminated namer8)rmrnr%r!)r� terminatorrwryrrr�getuntil s     zTokenizer.getuntilcCs|jt|jpd�S)Nr6)rQr!rm)rrrr�possz Tokenizer.poscCs|jt|jpd�S)Nr6)rQr!rm)rrrr�tellszTokenizer.tellcCs||_|j�dS)N)rQrn)rrQrrr�seekszTokenizer.seekrcCst||j|j�|�S)N)r%rkr~)r�msg�offsetrrrr%#szTokenizer.errorN)r)rrrr rnrrr&rzr|r1r}r~rr%rrrrrh�s   rhc Cstj|�}|r|Stj|�}|r0|dtkr0|S�y�|dd�}|dkr�||jdt�7}t|�dkrx|jd|t|���tt |dd�d�fS|dkr�|j r�||jdt�7}t|�d kr�|jd|t|���tt |dd�d�fS|d ko�|j �rF||jd t�7}t|�d k�r$|jd|t|���t |dd�d�}t |�t|fS|t k�r�||jdt �7}t |dd�d �}|d k�r�|jd|t|���t|fS|t k�r�t�t|�dk�r�|tk�r�|jd|t|���tt|d�fSWntk �r�YnX|jd|t|���dS)Nrr8rXr�zincomplete escape %s�r��U�� ��z.octal escape value %s outside of range 0-0o377z bad escape %s)�ESCAPESr&� CATEGORIESr@rz� HEXDIGITSr!r%�LITERAL�intrj�chr� OCTDIGITS�DIGITS� ValueError� ASCIILETTERS�ord)r/�escaperUryrrr� _class_escape&sR         r�c Cs�tj|�}|r|Stj|�}|r$|S�yt|dd�}|dkr�||jdt�7}t|�dkrl|jd|t|���tt|dd�d�fS|dkr�|j r�||jdt�7}t|�dkr�|jd|t|���tt|dd�d�fS|d ko�|j �r:||jd t�7}t|�d k�r|jd|t|���t|dd�d�}t |�t|fS|d k�rj||jdt �7}tt|dd�d �fS|t k�r\|j t k�r�||j�7}|dt k�r�|dt k�r�|j t k�r�||j�7}t|dd�d �}|d k�r�|jd|t|���t|fSt|dd��}||jk�rD|j|��s0|jdt|���|j||�t|fS|jd|t|�d��t|�dk�r�|tk�r�|jd|t|���tt|d�fSWntk �r�YnX|jd|t|���dS)Nr8rXrr�zincomplete escape %sr�rr�r�r�r��0r�z.octal escape value %s outside of range 0-0o377zcannot refer to an open groupzinvalid group reference %dz bad escape %s)r�r&r�rzr�r!r%r�r�rjr�r�r�rmr"r.r0rar�r�r�)r/r��staterUry�grouprrr�_escapeVsn                  r�c Cs$g}|j}|j}|j�}x.|t||||d| o4| ��|d�sPqWt|�dkr\|dSt|�}|j} x\d} xP|D]*} | s�P| dkr�| d} qv| d| krvPqvWx|D] } | d=q�W| | �qlPqlWxD|D]"} t| �dks�| ddtk r�Pq�W| tdd�|D�f�|S|jtd|ff�|S)Nr8�|rcSsg|] }|d�qS)rr)�.0�itemrrr� �sz_parse_sub..) r#rrr~�_parser!r2r�r@rA) r/r��verbose�nested�items� itemsappend� sourcematch�start� subpattern�subpatternappend�prefixr�rrr� _parse_sub�sD       r�cCsht||||d�}|jd�rDt||||d�}|jdkrH|jd��nd}t|�}|jt|||ff�|S)Nr8r�z/conditional backref with more than two branches)r�rrrmr%r2r#rD)r/r�rKr�r�rLrMr�rrr�_parse_sub_cond�s   r�Fc)Cs t|�}|j}|j}|j}t} t} � x�|j} | dkr6P| dkr@P|�|r|| tkrTq&| dkr|x|�} | dkst| dkr^Pq^Wq&| ddkr�t|| |�} || �q&| t kr�|t | | �f�q&| dk�r4|j �d} g}|j}|d�r�|t df�|dd�}�x�|�} | dk�r |j d |j �| ��| d k�r8||k�r8Pn&| ddk�rRt|| �}n t | | �f}|d ��r�|�}|dk�r�|j d |j �| ��|d k�r�|dtk�r�|dd}||�|t | d �f�P|ddk�r�t||�}n t | |�f}|dt k�s |dt k�r4d | |f}|j |t| �dt|���|d}|d}||k�rvd | |f}|j |t| �dt|���|t||ff�n"|dtk�r�|dd}||��q�W| |�dk�r�|ddt k�r�||d�nT| |�d k�r&|ddt k�r&|ddt k�r&|t|ddf�n |t|f�q&| tk�rb|j �} | dk�r\d7\}}�nJ| dk�rtdt}}�n2| dk�r�dt}}�n| dk�r�|jdk�r�|t | | �f�q&dt}}d}}x|jtk�r�||�7}�q�W|d��rx"|jtk�r ||�7}�q�Wn|}|d��s8|t | | �f�|j| �q&|�rXt|�}|tk�rXtd��|�r�t|�}|tk�rxtd��||k�r�|j d|j �| ��ntd|f��|�r�|d8d�}nd}| �s�| |�dk�r|ddtk�r|j d|j �| t| ���|ddtk�r0|j d|j �| t| ���|d��rNt|||ff|d9<nt|||ff|d:<q&| dk�rz|tdf�q&| dk� r�|j �d}d}d}d}d}d}|d�� r�|�}|dk�r�|j d��|dk�r�|d��r|jd �}|j��s�d!|}|j |t|�d��n�|d"��r�|jd#�}|j��sHd!|}|j |t|�d��|j j|�} | dk�rzd$|}|j |t|�d��|j!| ��s�|j d%t|�d��|j"| |�|t#| f�q&n2|�}|dk�r�|j d��|j d&|t|�d ���n�|d'k�r�d}�n�|dk�rDx4|jdk�r*|j d(|j �|��|�d#k�r P�q Wq&�n�|d)k�r0d}!|dk�r�|�}|dk�rv|j d��|d*k�r�|j d+|t|�d ��d;}!|j$}"|"dk�r�|j%|_$t&||||d�}#|!dk�r�|"dk�r�d|_$|d#��s�|j d,|j �|��|d"k�r|t'|!|#ff�q&|t(|!|#ff�q&�n�|dk� r$|jd#�}$d}|$j��r�|j j|$�}|dk� rd$|$}|j |t|$�d��n�yt|$�}|dk�r�t)�Wn4t)k �r�d!|$}|j |t|$�d�d�YnX|�s�|j d-t|$�d��|t*k� rd.|}|j |t|$�d��|j"||�n�|t+k� s8|d k� r�t,|||�}%|%dk� r�| � s\|� r�ddl-}&|&j.d/|j/dd0�t|j/�d0k� r�d1ndft0|d2d3�|j1t2@r&| r&t3�q&|%\}}d}n|j d4|t|�d��|dk � r0y|j4|�}Wn<t k � r.}'z|j |'j5t|�d�d�WYdd}'~'XnX|� rLt6|||||d�}#n,|� s\|t2@� od|t2@ }(t&|||(|d�}#|jd#�� s�|j d,|j �|��|dk � r�|j7||#�|t8||||#ff�q&| dk� r�|tt9f�q&| d5k� r�|jtt:f�q&td6|f��q&W|S)zbad character in group name %r�=�)zunknown group name %rzcannot refer to an open groupzunknown extension ?P�:zmissing ), unterminated commentz=!|t@rtd��|t@s,|tO}qf|t@rftd��n(|t@rNtd��|t@rf|t@rftd��|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)rEr?�SRE_FLAG_LOCALEr��SRE_FLAG_ASCII�SRE_FLAG_UNICODE)�srcrrrr� fix_flags<s   r�Nc Cs�t|�}|dkrt�}||_||_yt|||t@d�}WnBtk rzt�}|tB|_||_|jd�t||dd�}YnXt||j j�|j _|j dk r�|j d��|t @r�|j �|S)NrTzunbalanced parenthesis)rhrrr?r�r�rrr�r3rmr%�SRE_FLAG_DEBUGrC)r?rr3r/r,rrr�parseLs&    r�c s�t|���j}g�g�g��j}�����fdd�}�j}�x�|�}|dkrNP|ddk�r�|d}|dk�rJd}�jd�s��jd ���jd �}|j�r�y ||} Wn tk r�t d |��YnXnlyt |�} | dkr�t �Wn0t k �r�jd |t |�d�d�YnX| t k�r4�jd | t |�d��|| t |�d��q�|dk�r��jtk�r�||�7}�jtk�r�||�7}|tt |dd�d�d@���q�|tk�rZd} �jtk�r4||�7}|tk�r4|dtk�r4�jtk�r4||�7}d} t |dd�d�}|dk�r(�jd|t |���|t|��| �s�|t |dd��t |�d�nZytt|d�}Wn<tk �r�|tk�r�ddl} | jd|tdd�YnX||�q>||�q>W��r؈jdj���t|t��s�dd��D����fS)NcsX|�jkr�jd||���r8�jdj����dd�=�jt��|f��jd�dS)Nzinvalid group reference %dr6)r"r%r#�joinr!)rQr})r"�literal�literalsr3rrr�addgroupus  z parse_template..addgrouprr r8�gr6r�z missing .)rhr&r#� groupindexrrr%r|r��KeyErrorror�r�r!r$rmr�r�r�r�r�r�r�r�r�rEr?) r/r3�sget�lappendr�r�rsryr'rQ�isoctalr�r)r"r�r�r3rr�parse_templatels�             "             r�c Csz|j}|jdd�}|\}}|dd�}y&x |D]\}}||�pB|||<q0WWn tk rntd|��YnX|j|�S)Nrzinvalid group reference %d)r�rkror%r�)�templaterrr��emptyr"r�rQr�rrr�expand_template�s r�)F)rN)<�__doc__� sre_constantsr�r�� frozensetr�r�r�r�r�r�r�r_r�r�r@r�r��CATEGORYr`r�r�r�ZAT_BEGINNING_STRINGZ AT_BOUNDARYZAT_NON_BOUNDARYZCATEGORY_DIGITZCATEGORY_NOT_DIGITZCATEGORY_SPACEZCATEGORY_NOT_SPACEZ CATEGORY_WORDZCATEGORY_NOT_WORDZ AT_END_STRINGr��SRE_FLAG_IGNORECASEr��SRE_FLAG_MULTILINE�SRE_FLAG_DOTALLr�r��SRE_FLAG_TEMPLATEr�r�r�r�� Exceptionrrr2rhr�r�r�r�r�r�r�r�r�r�rrrr� sj               #qH0A3 <, W