ó
CØê[c           @   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	 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  d/ „  ƒ  YZ% d0 „  Z& d1 „  Z' d2 „  Z( d3 „  Z) d4 „  Z* d5 d6 „ Z+ d7 „  Z, e d8 ƒ Z- e d9 ƒ Z. e d: ƒ Z/ e e0 e1 g ƒ Z2 d; „  Z3 d< e4 d= „ Z5 d> „  Z6 d? „  Z7 d S(@   s   Internal support module for sreiÿÿÿÿN(   t   *s   .\[{()*+?^$|s   *+?{t
   0123456789t   01234567t   0123456789abcdefABCDEFs    	
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   s(   d |  _  g  |  _ d |  _ i  |  _ d  S(   Ni    i   (   t   flagst   opent   groupst	   groupdict(   t   self(    (    s   /usr/lib/python2.7/sre_parse.pyt   __init__C   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	   opengroupH   s    	c         C   s   |  j  j | ƒ d  S(   N(   R   t   remove(   R   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt
   closegroupS   s    c         C   s   | |  j  k  o | |  j k S(   N(   R   R   (   R   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt
   checkgroupU   s    N(   t   __name__t
   __module__R   R   R   R   R   (    (    (    s   /usr/lib/python2.7/sre_parse.pyR   A   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   Z   s
    			i    c         C   su  d } t  d ƒ t  g  ƒ f } xP|  j D]E\ } } | d | Gd } | d k rˆ Hd } x| D]! \ } } | d d | G| GHq` WnÛ | d k rö Hd } d } x¿ | d D]C } | d k rÎ | d d GHn  | j | d ƒ d } | d } q¬ Wnm t  | ƒ | k rYxX | D]C } t | t ƒ rH| s.Hn  | j | d ƒ d } q| Gd } qWn
 | Gd } | s( Hq( q( Wd  S(   Ni   s     i    t   int   brancht   or(    (   t   typeR"   t   dumpt
   isinstanceR    (   R   t   levelt   nlt   seqtypest   opt   avt   aR   (    (    s   /usr/lib/python2.7/sre_parse.pyR(   `   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   R3   (    (    s   /usr/lib/python2.7/sre_parse.pyt   __getitem__‚   s    c         C   s   | |  j  | <d  S(   N(   R"   (   R   R3   t   code(    (    s   /usr/lib/python2.7/sre_parse.pyt   __setitem__†   s    c         C   s   |  j  j | | ƒ d  S(   N(   R"   t   insert(   R   R3   R7   (    (    s   /usr/lib/python2.7/sre_parse.pyR9   ˆ   s    c         C   s   |  j  j | ƒ d  S(   N(   R"   R   (   R   R7   (    (    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   RANGEt   INt   LITERALt   NOT_LITERALt   CATEGORYt
   MIN_REPEATt
   MAX_REPEATR"   t   BRANCHt	   MAXREPEATt   getwidtht   mint   maxt   CALLt
   SUBPATTERNt   SUCCESS(   R   t   lot   hit	   UNITCODESt   REPEATCODESR-   R.   R   t   jt   lt   h(    (    s   /usr/lib/python2.7/sre_parse.pyRD   Œ   sD    	





%N(   R   R   R   R   R(   R0   R2   R4   R6   R8   R9   R   RD   (    (    (    s   /usr/lib/python2.7/sre_parse.pyR    X   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   stringR3   t   _Tokenizer__next(   R   RR   (    (    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)(   R3   R1   RR   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    (   RT   RS   (   R   RV   t   skip(    (    s   /usr/lib/python2.7/sre_parse.pyt   matchÃ   s
    c         C   s   |  j  } |  j ƒ  | S(   N(   RT   RS   (   R   t   this(    (    s   /usr/lib/python2.7/sre_parse.pyR   É   s    	
c         C   s   |  j  |  j f S(   N(   R3   RT   (   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt   tellÍ   s    c         C   s   | \ |  _  |  _ d  S(   N(   R3   RT   (   R   R3   (    (    s   /usr/lib/python2.7/sre_parse.pyt   seekÏ   s    (   R   R   R   RS   RZ   R   R\   R]   (    (    (    s   /usr/lib/python2.7/sre_parse.pyRQ   ±   s   				c         C   sB   d |  k o d k n pA d |  k o3 d k n pA |  d k S(   NR/   t   zt   At   Zt   _(    (   RV   (    (    s   /usr/lib/python2.7/sre_parse.pyt   isidentÒ   s    c         C   s   d |  k o d k SS(   Nt   0t   9(    (   RV   (    (    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   (   Rb   t   FalseRe   t   True(   R   RV   (    (    s   /usr/lib/python2.7/sre_parse.pyt   isnameØ   s    c         C   s¼  t  j | ƒ } | r | St j | ƒ } | rB | d t k rB | SyO| 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	 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   (   t   ESCAPESR   t
   CATEGORIESR<   RT   t	   HEXDIGITSR1   R   R   R=   t   intt	   OCTDIGITSt   DIGITSt   ordt
   ValueError(   t   sourcet   escapeR7   RW   (    (    s   /usr/lib/python2.7/sre_parse.pyt   _class_escapeá   s6    $
$
c         C   sB  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  t | f St ‚ n  t | ƒ d k rt t | d ƒ f SWn t k
 r*n Xt d
 t | ƒ ‚ d  S(   Ni   i   R   i   i   iÿ   Rc   i   s   cannot refer to open groups   bogus escape: %s(   Rj   R   Ri   RT   Rk   R1   Rp   R=   Rl   Rm   Rn   R   R   R   t   GROUPREFRo   R   (   Rq   Rr   t   stateR7   RW   t   group(    (    s   /usr/lib/python2.7/sre_parse.pyt   _escape  sH    $	$ 
	i   c         C   s¶  g  } | j  } |  j } xX | t |  | ƒ ƒ | d ƒ r@ q n  | sJ Pn  |  j sc | d d ƒ rg Pq t d ‚ q t | ƒ d k r | d St | ƒ } | j  } xw d  } xj | D]= }	 |	 sÂ Pn  | d  k rÛ |	 d } q² |	 d | k r² Pq² q² Wx | D] }	 |	 d =qú W| | ƒ q¥ Pq¥ xz | D]0 }	 t |	 ƒ d k sO|	 d d t k r#Pq#q#Wg  }
 |
 j  } x | D] }	 | |	 d ƒ qmW| t	 |
 f ƒ | S| j  t
 d  | f f ƒ | S(   Nt   |t   )i    s   pattern not properly closedi   (   R   RZ   t   _parseRT   R   R1   R    R   R=   R<   RB   (   Rq   Ru   t   nestedt   itemst   itemsappendt   sourcematcht
   subpatternt   subpatternappendt   prefixt   itemt   sett	   setappend(    (    s   /usr/lib/python2.7/sre_parse.pyt
   _parse_sub-  sR    			
&	c         C   s¥   t  |  | ƒ } |  j d ƒ rK t  |  | ƒ } |  j d ƒ rQ t d ‚ qQ n d  } |  j ry |  j d d ƒ ry t d ‚ n  t | ƒ } | j t | | | f f ƒ | S(   NRx   s/   conditional backref with more than two branchesRy   i    s   pattern not properly closed(   Rz   RZ   R   R   RT   R    R   t   GROUPREF_EXISTS(   Rq   Ru   t	   condgroupt   item_yest   item_noR   (    (    s   /usr/lib/python2.7/sre_parse.pyt   _parse_sub_condh  s    s   |)s   =!<s   =!c          C   sÄ  t  | ƒ } | j } |  j } |  j } t } t } t } t }	 t }
 xx|  j	 | k r[ Pn  | ƒ  } | d  k rt Pn  | j t @rÇ | t k r“ qH n  | d k rÇ x | ƒ  } | d/ k r¢ Pq¢ q¢ qH qÇ n  | rö | d t k rö | t t | ƒ f ƒ qH | d k r•g  } | j } | d ƒ r0| t d  f ƒ n  | } x¼| ƒ  } | d k r_| | k r_PnL | r‡| d d k r‡t |  | ƒ } 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 r9t |  | ƒ } n t t | ƒ f } | d t k sk| d t k rw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:| | ƒ 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 | r(| d t k r(| d k rÆd0 \ } } n¬| d k râd t } } n| d k rþd
 t } } nt| d k ri|  j	 d k r5| t t | ƒ f ƒ qH n  |  j ƒ  } d t } } d } } x# |  j	 t k r}| |  j ƒ  } q[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  | rrt | ƒ } | t k rHt d ƒ ‚ n  | | k  rft d ƒ ‚ qfqr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 rG| t! d  f ƒ qH | d k r>d
 } d  } d  } | d ƒ rZ
d } | d ƒ r| d ƒ rd } x> | ƒ  } | d  k r¹t d ‚ n  | d k rÉPn  | | } q˜d
 } | sñt d  ƒ ‚ n  t" | ƒ st d! | ƒ ‚ qqW
| d" ƒ rÚd } x> | ƒ  } | d  k rIt d ‚ n  | d# k rYPn  | | } q(| s{t d  ƒ ‚ n  t" | ƒ sšt d$ | ƒ ‚ n  | j# j | ƒ } | d  k rÄt d% ‚ n  | t$ | f ƒ qH qW
| ƒ  } | d  k rût d& ‚ n  t d' | ‚ qZ
| d( ƒ r d } qZ
| d ƒ ryx, |  j	 d  k sM|  j	 d# k rQPn  | ƒ  q/| d# ƒ sH t d) ‚ qH qH qZ
|  j	 | k r8	| ƒ  } d
 } | d k rÐ|  j	 |	 k r¾t d* ‚ n  d } | ƒ  } n  t% |  | ƒ } | d# ƒ s÷t d) ‚ n  | d" k r	| t& | | f f ƒ qH | t' | | f f ƒ qH qZ
| d ƒ r
d } x> | ƒ  } | d  k rn	t d ‚ n  | d# k r~	Pn  | | } qM	d } | s¦	t d  ƒ ‚ n  t" | ƒ rß	| j# j | ƒ } | d  k r
t d% ‚ q
qW
y t | ƒ } WqW
t( k
 r
t d+ ‚ qW
XqZ
|  j	 t) k r*
t d& ‚ n  x- |  j	 t) k rV
| j t) | ƒ  B| _ q-
Wn  | rû
| d k ru
d  } n | j* | ƒ } | rŸ
t+ |  | | ƒ } n t% |  | ƒ } | d# ƒ sÆ
t d) ‚ n  | d  k	 râ
| j, | ƒ n  | t- | | f f ƒ q½x¿ | ƒ  } | d  k rt d& ‚ n  | d# k r/Pn  t d, ‚ qþ
qH | d k r]| t t. f ƒ qH | d- k r| j t t/ f ƒ qH | r´| d d k r´t0 |  | | ƒ } | | ƒ qH t d. ‚ qH | S(1   Nt   #s   
i    t   [t   ^t   ]s   \s$   unexpected end of regular expressiont   -i   s   bad character rangei   t   ?R    t   +t   {t   }t    t   ,s"   the repetition number is too larges   bad repeat intervals   not supportediÿÿÿÿs   nothing to repeats   multiple repeatt   .t   (t   Pt   <s   unterminated namet   >s   missing group names   bad character in group name %rt   =Ry   s&   bad character in backref group name %rs   unknown group names   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   (1   R    R   R   RZ   R1   t   _PATTERNENDERSt   _ASSERTCHARSt   _LOOKBEHINDASSERTCHARSt   _REPEATCODESRT   R   R   t   SRE_FLAG_VERBOSEt
   WHITESPACEt   SPECIAL_CHARSR=   Ro   t   NEGATERs   R   R<   R;   R>   t   REPEAT_CHARSRC   R\   Rn   R]   Rl   t   OverflowErrort   ATR@   RA   R:   Rh   R   Rt   R…   t   ASSERTt
   ASSERT_NOTRp   t   FLAGSR   RŠ   R   RH   t   AT_BEGINNINGt   AT_ENDRw   (    Rq   Ru   R   R€   t	   sourcegetR~   t   _lent   PATTERNENDERSt   ASSERTCHARSt   LOOKBEHINDASSERTCHARSRM   R[   Rƒ   R„   t   startt   code1t   code2RJ   RK   RE   RF   t   hereR‚   Rv   R   R‡   RV   R   t   dirt   pt   condnameR7   (    (    s   /usr/lib/python2.7/sre_parse.pyRz   {  sÜ   										
 

&:
	-				
				i    c         C   sÇ   t  |  ƒ } | d  k r$ t ƒ  } n  | | _ |  | _ t | | d ƒ } | j ƒ  } | d k rl t d ‚ n | r~ t d ‚ n  | t @r• | j	 ƒ  n  | t
 @rÃ | j j t
 @rÃ t |  | j j ƒ S| S(   Ni    Ry   s   unbalanced parenthesiss-   bogus characters at end of regular expression(   RQ   R   R   R   t   strR…   R   R   t   SRE_FLAG_DEBUGR(   R¢   R!   t   parse(   Rº   R   R!   Rq   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xA | ƒ  } | d  k rè t d	 ‚ n  | d
 k rø Pn  | | } qÇ n  | st d ‚ n  y( t	 | ƒ } | d k  rAt d ‚ n  WnW t
 k
 r›t | ƒ sjt d ‚ n  y | j | } Wqœt k
 r—t d ‚ qœXn X| t | f ƒ q|
 d k r| j t k rù|	 | ƒ  }	 | j t k rù|	 | ƒ  }	 qùn  | | t	 |	 d d ƒ d @ƒ ƒ q|
 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qy | t |	 d ƒ }	 Wn t k
 rn X| |	 ƒ qg | |	 ƒ qg d } g  } | j } d  g t | ƒ } xG | D]? \ }
 } |
 t k rv| | | f ƒ n
 | | | <| d } qKW| | f S(   Nc         S   sM   | r9 | d d t  k r9 t  | d d |  f | d <n | t  |  f ƒ d  S(   Niÿÿÿÿi    i   (   R=   (   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 nameRc   i   iÿ   (   RQ   R   R   R'   t   chrt   unichrR   RZ   R   Rl   Rp   Rh   t
   groupindext   KeyErrorRU   t   MARKRT   Rm   Rn   Rf   Rg   Ri   R1   (   Rq   R!   R   t   sgetR¸   R/   R¾   t   sept   makecharR[   RW   R   RV   R3   t   isoctalR   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(   Rv   RR   R   R   RU   t   join(	   t   templateRZ   RÀ   RÇ   R   RË   R3   Rv   R   (    (    s   /usr/lib/python2.7/sre_parse.pyt   expand_template  s    	(8   t   __doc__t   syst   sre_constantsR¤   R¦   Rƒ   Rn   Rm   Rk   R£   R=   Ro   Ri   R¨   t   AT_BEGINNING_STRINGt   AT_BOUNDARYt   AT_NON_BOUNDARYR<   R?   t   CATEGORY_DIGITt   CATEGORY_NOT_DIGITt   CATEGORY_SPACEt   CATEGORY_NOT_SPACEt   CATEGORY_WORDt   CATEGORY_NOT_WORDt   AT_END_STRINGRj   t   SRE_FLAG_IGNORECASEt   SRE_FLAG_LOCALEt   SRE_FLAG_MULTILINEt   SRE_FLAG_DOTALLR¢   t   SRE_FLAG_TEMPLATEt   SRE_FLAG_UNICODER«   R   R    RQ   Rb   Re   Rh   Rs   Rw   R…   RŠ   Rž   RŸ   R    R@   RA   R¡   Rz   R   R¼   RÌ   RÏ   (    (    (    s   /usr/lib/python2.7/sre_parse.pyt   <module>   sn   

Y!					 	,;		ÿ )	W