
bc           @   s  d  Z  d d l Z d d l Td Z d Z e d  Z e d  Z e d  Z e d	  Z	 e d
  Z
 i e e d  f d 6e e d  f d 6e e d  f d 6e e d  f d 6e e d  f d 6e e d  f d 6e e d  f d 6e e d  f d 6Z i
 e e f d 6e e f d 6e e f d 6e e e f g f d 6e e e f g f d 6e e e f g f d 6e e e f g f d  6e e e f g f d! 6e e e f g f d" 6e e f d# 6Z i e d$ 6e d% 6e d& 6e d' 6e  d( 6e! d) 6e" d* 6Z# d+ f  d,     YZ$ d- f  d.     YZ% d/ f  d0     YZ& d1   Z' d2   Z( d3   Z) d4   Z* d5   Z+ d6   Z, d7   Z- e d8  Z. e d9  Z/ e d:  Z0 e e1 e2 g  Z3 d;   Z4 d< e5 d=  Z6 d>   Z7 d?   Z8 d S(@   s   Internal support module for sreiN(   t   *s   .\[{()*+?^$|s   *+?{t
   0123456789t   01234567t   0123456789abcdefABCDEFt4   abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZs    	
s   s   \as   s   \bs   s   \fs   
s   \ns   s   \rs   	s   \ts   s   \vs   \s   \\s   \As   \Bs   \ds   \Ds   \ss   \Ss   \ws   \Ws   \Zt   it   Lt   mt   st   xt   tt   ut   Patternc           B   s/   e  Z d    Z d d  Z d   Z d   Z RS(   c         C   s1   d |  _  g  |  _ d |  _ i  |  _ d |  _ d  S(   Ni    i   (   t   flagst   opent   groupst	   groupdictt
   lookbehind(   t   self(    (    s   /usr/lib/python2.7/sre_parse.pyt   __init__D   s
    				c         C   s   |  j  } | d |  _  | d  k	 rr |  j j | d   } | d  k	 rb t d t |  | | f  n  | |  j | <n  |  j j |  | S(   Ni   s7   redefinition of group name %s as group %d; was group %d(   R   t   NoneR   t   gett   errort   reprR   t   append(   R   t   namet   gidt   ogid(    (    s   /usr/lib/python2.7/sre_parse.pyt	   opengroupK   s    	c         C   s   |  j  j |  d  S(   N(   R   t   remove(   R   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt
   closegroupV   s    c         C   s   | |  j  k  o | |  j k S(   N(   R   R   (   R   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt
   checkgroupX   s    N(   t   __name__t
   __module__R   R   R   R   R   (    (    (    s   /usr/lib/python2.7/sre_parse.pyR   B   s   		t
   SubPatternc           B   sh   e  Z d d   Z d d  Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z RS(   c         C   s4   | |  _  | d  k r g  } n  | |  _ d  |  _ d  S(   N(   t   patternR   t   datat   width(   R   R#   R$   (    (    s   /usr/lib/python2.7/sre_parse.pyR   ]   s
    			i    c         C   s  t  t f } x|  j D]|\ } } | d | G| t k rj HxT| D]! \ } } | d d | G| GHqB Wq | t k r Hxt | d  D]3 \ } } | r | d d GHn  | j | d  q Wq | t k r| \ } } }	 | GH| j | d  |	 r| d d GH|	 j | d  qq t | |  rd }
 xK | D]C } t | t	  rr|
 sXHn  | j | d  d }
 q9| Gd }
 q9W|
 sHqq | GHq Wd  S(   Ns     i   t   ort   elsei    (
   t   tuplet   listR$   t   INt   BRANCHt	   enumeratet   dumpt   GROUPREF_EXISTSt
   isinstanceR"   (   R   t   levelt   seqtypest   opt   avt   aR   t	   condgroupt   item_yest   item_not   nl(    (    s   /usr/lib/python2.7/sre_parse.pyR-   c   sB    	
c         C   s   t  |  j  S(   N(   R   R$   (   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt   __repr__   s    c         C   s   t  |  j  S(   N(   t   lenR$   (   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt   __len__   s    c         C   s   |  j  | =d  S(   N(   R$   (   R   t   index(    (    s   /usr/lib/python2.7/sre_parse.pyt   __delitem__   s    c         C   s1   t  | t  r& t |  j |  j |  S|  j | S(   N(   R/   t   sliceR"   R#   R$   (   R   R<   (    (    s   /usr/lib/python2.7/sre_parse.pyt   __getitem__   s    c         C   s   | |  j  | <d  S(   N(   R$   (   R   R<   t   code(    (    s   /usr/lib/python2.7/sre_parse.pyt   __setitem__   s    c         C   s   |  j  j | |  d  S(   N(   R$   t   insert(   R   R<   R@   (    (    s   /usr/lib/python2.7/sre_parse.pyRB      s    c         C   s   |  j  j |  d  S(   N(   R$   R   (   R   R@   (    (    s   /usr/lib/python2.7/sre_parse.pyR      s    c         C   s  |  j  r |  j  Sd } } t t t t t t f } t t f } xy|  j	 D]n\ } } | t
 k r t d } d } xB | d D]6 } | j   \ }	 }
 t | |	  } t | |
  } q{ W| | } | | } qH | t k r| j   \ } } | | } | | } qH | t k r:| d j   \ } } | | } | | } qH | | k r| d j   \ } } | | | d } | | | d } qH | | k r| d } | d } qH | t k rH PqH qH Wt | t d  t | t  f |  _  |  j  S(   Ni    i   i   (   R%   t   ANYt   RANGER*   t   LITERALt   NOT_LITERALt   CATEGORYt
   MIN_REPEATt
   MAX_REPEATR$   R+   t	   MAXREPEATt   getwidtht   mint   maxt   CALLt
   SUBPATTERNt   SUCCESS(   R   t   lot   hit	   UNITCODESt   REPEATCODESR2   R3   R   t   jt   lt   h(    (    s   /usr/lib/python2.7/sre_parse.pyRK      sD    	





%N(   R    R!   R   R   R-   R9   R;   R=   R?   RA   RB   R   RK   (    (    (    s   /usr/lib/python2.7/sre_parse.pyR"   [   s   %							t	   Tokenizerc           B   sA   e  Z d    Z d   Z d d  Z d   Z d   Z d   Z RS(   c         C   s    | |  _  d |  _ |  j   d  S(   Ni    (   t   stringR<   t   _Tokenizer__next(   R   RY   (    (    s   /usr/lib/python2.7/sre_parse.pyR      s    		c         C   s   |  j  t |  j  k r% d  |  _ d  S|  j |  j  } | d d k r y |  j |  j  d } Wn t k
 ry t d  n X| | } n  |  j  t |  |  _  | |  _ d  S(   Ni    s   \i   s   bogus escape (end of line)(   R<   R:   RY   R   t   nextt
   IndexErrorR   (   R   t   chart   c(    (    s   /usr/lib/python2.7/sre_parse.pyt   __next   s    	i   c         C   s*   | |  j  k r& | r" |  j   n  d Sd S(   Ni   i    (   R[   RZ   (   R   R]   t   skip(    (    s   /usr/lib/python2.7/sre_parse.pyt   match   s
    c         C   s   |  j  } |  j   | S(   N(   R[   RZ   (   R   t   this(    (    s   /usr/lib/python2.7/sre_parse.pyR      s    	
c         C   s   |  j  |  j f S(   N(   R<   R[   (   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt   tell   s    c         C   s   | \ |  _  |  _ d  S(   N(   R<   R[   (   R   R<   (    (    s   /usr/lib/python2.7/sre_parse.pyt   seek   s    (   R    R!   R   RZ   Ra   R   Rc   Rd   (    (    (    s   /usr/lib/python2.7/sre_parse.pyRX      s   				c         C   sB   d |  k o d k n pA d |  k o3 d k n pA |  d k S(   NR4   t   zt   At   Zt   _(    (   R]   (    (    s   /usr/lib/python2.7/sre_parse.pyt   isident   s    c         C   s   d |  k o d k SS(   Nt   0t   9(    (   R]   (    (    s   /usr/lib/python2.7/sre_parse.pyt   isdigit   s    c         C   sK   t  |  d  s t Sx0 |  d D]$ } t  |  r t |  r t Sq Wt S(   Ni    i   (   Ri   t   FalseRl   t   True(   R   R]   (    (    s   /usr/lib/python2.7/sre_parse.pyt   isname   s    c         C   s+  t  j |  } | r | St j |  } | rB | d t k rB | Sy| d d !} | d k r x5 |  j t k r t |  d k  r | |  j   } qa W| d } t |  d k r t d t d |   n  t	 t
 | d  d	 @f S| t k rHx5 |  j t k r&t |  d k  r&| |  j   } q W| d } t	 t
 | d
  d	 @f S| t k rjt d t |   n  t |  d k rt j r| t k rd d  l } | d k r| j d | t d | d q| j d | t d | d n  t	 t | d  f SWn t k
 rn Xt d t |   d  S(   Ni    i   i   R	   i   s   bogus escape: %ss   \i   i   i   it   UusB   bad escape %s; Unicode escapes are supported only since Python 3.3t
   stackleveli   s   bad escape %s(   t   ESCAPESR   t
   CATEGORIESR*   R[   t	   HEXDIGITSR:   R   R   RE   t   intt	   OCTDIGITSt   DIGITSt   syst   py3kwarningt   ASCIILETTERSt   warningst   warnt   FutureWarningt   warnpy3kt   DeprecationWarningt   ordt
   ValueError(   t   sourcet   escapet   nestedR@   R^   R{   (    (    s   /usr/lib/python2.7/sre_parse.pyt   _class_escape   sF    $
$
	c         C   s  t  j |  } | r | St j |  } | r2 | Sy| d d !} | d k r x5 |  j t k r t |  d k  r | |  j   } qQ Wt |  d k r t  n  t t | d d  d @f S| d k rx5 |  j t	 k r t |  d k  r | |  j   } q Wt t | d d  d @f S| t
 k r"|  j t
 k r| |  j   } | d t	 k r| d t	 k r|  j t	 k r| |  j   } t t | d d  d @f Sn  t | d  } | | j k  r| j |  st d	  n  | j rd
 d  l } | j d t d | d n  t | f St  n  t |  d k rt j r| t k rd
 d  l } | d k r| j d | t d | d q| j d | t d | d n  t t | d  f SWn t k
 rn Xt d t |   d  S(   Ni   i   R	   i   i   i   Rj   i   s   cannot refer to open groupis;   group references in lookbehind assertions are not supportedRq   i   Rp   sB   bad escape %s; Unicode escapes are supported only since Python 3.3s   bad escape %ss   bogus escape: %s(   Rs   R   Rr   R[   Rt   R:   R   RE   Ru   Rv   Rw   R   R   R   R   R{   R|   t   RuntimeWarningt   GROUPREFRx   Ry   Rz   R}   R~   R   R   R   (   R   R   t   stateR   R@   R^   t   groupR{   (    (    s   /usr/lib/python2.7/sre_parse.pyt   _escape  s`    $	$ 		
		c         C   s  g  } | j  } |  j } x` | t |  | | d   | d  rG q n  | sQ Pn  |  j sj | d d  rn Pq t d  q Wt |  d k r | d St |  } | j  } xx d  } xj | D]= }	 |	 s Pn  | d  k r |	 d } q |	 d | k r Pq q Wx | D] }	 |	 d =qW| |  q Pq Wxz | D]0 }	 t |	  d k sX|	 d d t k r,Pq,q,Wg  }
 |
 j  } x | D] }	 | |	 d  qvW| t	 |
 f  | S| j  t
 d  | f f  | S(   Ni   t   |t   )i    s   pattern not properly closed(   R   Ra   t   _parseR[   R   R:   R"   R   RE   R*   R+   (   R   R   R   t   itemst   itemsappendt   sourcematcht
   subpatternt   subpatternappendt   prefixt   itemt   sett	   setappend(    (    s   /usr/lib/python2.7/sre_parse.pyt
   _parse_subP  sR    			
&	c         C   s   t  |  | | d  } |  j d  rY t  |  | | d  } |  j d  r_ t d  q_ n d  } |  j r |  j d d  r t d  n  t |  } | j t | | | f f  | S(   Ni   R   s/   conditional backref with more than two branchesR   i    s   pattern not properly closed(   R   Ra   R   R   R[   R"   R   R.   (   R   R   R5   R   R6   R7   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt   _parse_sub_cond  s    s   |)s   =!<s   =!c   #      C   s  t  |  } | j } |  j } |  j } t } t } t }	 t }
 t } x_|  j	 | k r[ Pn  |   } | d  k rt Pn  | j t @r | t k r qH n  | d k r x |   } | d2 k r Pq q WqH q n  | r | d t k r | t t |  f  qH | d k rg  } | j } | d  r1| t d  f  n  | } x|   } | d k r`| | k r`PnS | r| d d k rt |  | | d  } n$ | rt t |  f } n	 t d	  | d
  r|   } | d k r| d t k r| d d } n  | |  | t t d
  f  Pq| r| d d k rHt |  | | d  } n t t |  f } | d t k sz| d t k rt d  n  | d } | d } | | k  rt d  n  | t | | f f  qt d	  q;| d t k r| d d } n  | |  q;W| |  d k r=| d d t k r=| | d  q| |  d k r| d d t k r| d d t k r| t | d d f  q| t | f  qH | r8| d t k r8| d k rd3 \ } } n| d k rd t } } n| d k rd t } } nt| d k ry|  j	 d k rE| t t |  f  qH n  |  j   } d t } } d } } x# |  j	 t k r| |  j   } qkW| d  rx) |  j	 t k r| |   } qWn | } | d  s| t t |  f  |  j |  qH n  | r+t |  } | t k r+t d   q+n  | rt |  } | t k rXt d   n  | | k  rvt d   qvqn	 t d  | r| d } n d  } | s| |  d k r| d d t k rt d  n  | d d | k rt d  n  | d  rt | | | f f | d <qt  | | | f f | d <qH | d k rW| t! d  f  qH | d k rd } d  } d  } | d  r*d } | d  ra| d  r$d } x? |   } | d  k rt d  n  | d k rPn  | | } qWd } | st d    n  t" |  s^t d! |   q^q'| d"  r0d } x? |   } | d  k rZt d  n  | d# k rjPn  | | } q9W| st d    n  t" |  st d$ |   n  | j# j |  } | d  k rd% j$ |  } t |   n  | j% rd d  l& } | j' d& t( d' | d( n  | t) | f  qH q'|   } | d  k rQt d)  n  t d* |  q*| d+  rvd } q*| d  rx- |  j	 d  k s|  j	 d# k rPn  |   qW| d#  sH t d,  qH qH q*|  j	 |	 k r	|   } d } | d k r6	|  j	 |
 k r	t d-  n  d } |   } | j% d 7_% n  t* |  | | d  }  | d k  rj	| j% d 8_% n  | d#  s	t d,  n  | d" k r	| t+ | |  f f  qH | t, | |  f f  qH q*| d  r
d }! x? |   } | d  k r	t d  n  | d# k r	
Pn  |! | }! q	Wd } |! s2
t d    n  t" |!  r}
| j# j |!  } | d  k r
d% j$ |!  } t |   q
n- y t |!  } Wn t- k
 r
t d.  n X| j% r'd d  l& } | j' d& t( d' | d( q'q*|  j	 t. k r
t d)  n  x- |  j	 t. k r&| j t. |   B| _ q
Wn  | r| d k rEd  } n | j/ |  } | rvt0 |  | | | d  }  n t* |  | | d  }  | d#  st d,  n  | d  k	 r| j1 |  n  | t2 | |  f f  qx |   } | d  k rt d)  n  | d# k rPn  t d/  qWqH | d k r<| t t3 f  qH | d0 k r^| j t t4 f  qH | r| d d k rt5 |  | | | d  }" | |"  qH t d1  qH W| S(4   Nt   #s   
i    t   [t   ^t   ]s   \i   s$   unexpected end of regular expressiont   -s   bad character rangei   t   ?R    t   +t   {t   }t    t   ,s"   the repetition number is too larges   bad repeat intervals   not supportedis   nothing to repeats   multiple repeatt   .t   (t   Pt   <s   unterminated namet   >s   missing group names   bad character in group name %rt   =R   s&   bad character in backref group name %rs   unknown group name: {0!r}s;   group references in lookbehind assertions are not supportedRq   i   s   unexpected end of patterns   unknown specifier: ?P%st   :s   unbalanced parenthesiss   syntax errors   bad character in group names   unknown extensiont   $s   parser error(   Ns   
(   i    i   (6   R"   R   R   Ra   R:   t   _PATTERNENDERSt   _ASSERTCHARSt   _LOOKBEHINDASSERTCHARSt   _REPEATCODESR[   R   R   t   SRE_FLAG_VERBOSEt
   WHITESPACEt   SPECIAL_CHARSRE   R   t   NEGATER   R   R*   RD   RF   t   REPEAT_CHARSRJ   Rc   Rw   Rd   Ru   t   OverflowErrort   ATRH   RI   RC   Ro   R   t   formatR   R{   R|   R   R   R   t   ASSERTt
   ASSERT_NOTR   t   FLAGSR   R   R   RO   t   AT_BEGINNINGt   AT_ENDR   (#   R   R   R   R   R   t	   sourcegetR   t   _lent   PATTERNENDERSt   ASSERTCHARSt   LOOKBEHINDASSERTCHARSRT   Rb   R   R   t   startt   code1t   code2RQ   RR   RL   RM   t   hereR   R   R   R5   R]   R   t   msgR{   t   dirt   pt   condnameR@   (    (    s   /usr/lib/python2.7/sre_parse.pyR     s   										
 

&:
	-													i    c         C   s  t  |   } | d  k r$ t   } n  | | _ |  | _ t | | d  } t j r | j j t	 @r | j j t
 @r d d  l } | j d t d d n  | j   } | d k r t d  n | r t d  n  | t @r | j j t @r t |  | j j  S| t @r| j   n  | S(	   Ni    is)   LOCALE and UNICODE flags are incompatibleRq   i   R   s   unbalanced parenthesiss-   bogus characters at end of regular expression(   RX   R   R   R   t   strR   Rx   Ry   R#   t   SRE_FLAG_LOCALEt   SRE_FLAG_UNICODER{   R~   R   R   R   R   t   parset   SRE_FLAG_DEBUGR-   (   R   R   R#   R   R   R{   t   tail(    (    s   /usr/lib/python2.7/sre_parse.pyR     s,    				
c         C   s  t  |   } | j } g  } | j } | | d  } |  d  } t |  t d  k r^ t } n t } x|   }	 |	 d  k r Pn  |	 r`|	 d d k r`|	 d d !}
 |
 d k rd } | j d  r	xB |   } | d  k r t d	  n  | d
 k r Pn  | | } q Wn  | st d  n  y( t	 |  } | d k  rBt d  n  Wni t
 k
 rt |  skt d  n  y | j | } Wqt k
 rd j |  } t |   qXn X| t | f  qj|
 d k r0| j t k r|	 |   }	 | j t k r|	 |   }	 qn  | | t	 |	 d d  d @  qj|
 t k rt } | j t k r|	 |   }	 |
 t k r|	 d t k r| j t k r|	 |   }	 t } | | t	 |	 d d  d @  qn  | s]| t t	 |	 d  f  q]qjy | t |	 d  }	 WnO t k
 rRt j rS|
 t k rSd d  l } | j d |	 t d d qSn X| |	  qg | |	  qg Wd } g  } | j } d  g t |  } xG | D]? \ }
 } |
 t k r| | | f  n
 | | | <| d } qW| | f S(   Nc         S   sM   | r9 | d d t  k r9 t  | d d |  f | d <n | t  |  f  d  S(   Nii    i   (   RE   (   t   literalR   t   pappend(    (    s   /usr/lib/python2.7/sre_parse.pyR     s    i    R   s   \i   i   t   gR   s   unterminated group nameR   s   missing group names   negative group numbers   bad character in group names   unknown group name: {0!r}Rj   i   i   is   bad escape %sRq   i   (   RX   R   R   t   typet   chrt   unichrR   Ra   R   Ru   R   Ro   t
   groupindext   KeyErrorR   R\   t   MARKR[   Rv   Rw   Rm   Rn   Rr   Rx   Ry   Rz   R{   R~   R   R:   (   R   R#   R   t   sgetR   R4   R   t   sept   makecharRb   R^   R   R]   R<   R   t   isoctalR{   R   R   t   groupsappendt   literals(    (    s   /usr/lib/python2.7/sre_parse.pyt   parse_template  s    		
			$' 	
c   	      C   s   | j  } | j d  } |  \ } } | } yG x@ | D]8 \ } } | |  | | <} | d  k r3 t d  q3 q3 WWn t k
 r t d  n X| j |  S(   Ni    s   unmatched groups   invalid group reference(   R   RY   R   R   R\   t   join(	   t   templateRa   R   R   R   R   R<   R   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt   expand_templateR  s    	(9   t   __doc__Rx   t   sre_constantsR   R   R   Rw   Rv   Rt   Rz   R   RE   R   Rr   R   t   AT_BEGINNING_STRINGt   AT_BOUNDARYt   AT_NON_BOUNDARYR*   RG   t   CATEGORY_DIGITt   CATEGORY_NOT_DIGITt   CATEGORY_SPACEt   CATEGORY_NOT_SPACEt   CATEGORY_WORDt   CATEGORY_NOT_WORDt   AT_END_STRINGRs   t   SRE_FLAG_IGNORECASER   t   SRE_FLAG_MULTILINEt   SRE_FLAG_DOTALLR   t   SRE_FLAG_TEMPLATER   R   R   R"   RX   Ri   Rl   Ro   R   R   R   R   R   R   R   RH   RI   R   R   R   R   R   R   (    (    (    s   /usr/lib/python2.7/sre_parse.pyt   <module>   sp   

b!					)	:	;		 8"	[