
вEbc           @` s  d  d l  m Z m Z m Z d  d l m Z m Z d  d l Z d d l m	 Z	 d d l m
 Z
 d d l m Z d d l m Z d d	 l m Z d d
 l m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m  Z  d e! d  Z" d d e! d  Z# d   Z$ d e% f d     YZ& e j' d    Z( d   Z) d e* e+ d  Z, d e- f d     YZ. d S(   i    (   t   absolute_importt   divisiont   unicode_literals(   t   with_metaclasst   viewkeysNi   (   t   _inputstream(   t
   _tokenizer(   t   treebuilders(   t   Marker(   t   _utils(   t   spaceCharacterst   asciiUpper2Lowert   specialElementst   headingElementst   cdataElementst   rcdataElementst
   tokenTypest   tagTokenTypest
   namespacest   htmlIntegrationPointElementst"   mathmlTextIntegrationPointElementst   adjustForeignAttributest   adjustMathMLAttributest   adjustSVGAttributest   Et   _ReparseExceptionu   etreec         K` s1   t  j |  } t | d | } | j |  |  S(   u  Parse an HTML document as a string or file-like object into a tree

    :arg doc: the document to parse as a string or file-like object

    :arg treebuilder: the treebuilder to use when parsing

    :arg namespaceHTMLElements: whether or not to namespace HTML elements

    :returns: parsed tree

    Example:

    >>> from html5lib.html5parser import parse
    >>> parse('<html><body><p>This is a doc</p></body></html>')
    <Element u'{http://www.w3.org/1999/xhtml}html' at 0x7feac4909db0>

    t   namespaceHTMLElements(   R   t   getTreeBuildert
   HTMLParsert   parse(   t   doct   treebuilderR   t   kwargst   tbt   p(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR      s    u   divc         K` s7   t  j |  } t | d | } | j |  d | | S(   u#  Parse an HTML fragment as a string or file-like object into a tree

    :arg doc: the fragment to parse as a string or file-like object

    :arg container: the container context to parse the fragment in

    :arg treebuilder: the treebuilder to use when parsing

    :arg namespaceHTMLElements: whether or not to namespace HTML elements

    :returns: parsed tree

    Example:

    >>> from html5lib.html5libparser import parseFragment
    >>> parseFragment('<b>this is a fragment</b>')
    <Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090>

    R   t	   container(   R   R   R   t   parseFragment(   R   R#   R   R   R    R!   R"   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR$   1   s    c         ` s    d t  f   f d     Y} | S(   Nt	   Decoratedc           ` s   e  Z   f d    Z RS(   c         ` s^   xE | j    D]7 \ } } t | t j  r:   |  } n  | | | <q Wt j |  | | |  S(   N(   t   itemst
   isinstancet   typest   FunctionTypet   typet   __new__(   t   metat	   classnamet   basest	   classDictt   attributeNamet	   attribute(   t   function(    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR+   L   s
    (   t   __name__t
   __module__R+   (    (   R2   (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR%   K   s   (   R*   (   R2   R%   (    (   R2   s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   method_decorator_metaclassJ   s    R   c           B` s   e  Z d  Z d e e e d  Z e d e d  Z d   Z e	 d    Z
 d   Z d   Z d   Z d	   Z d
   Z d d d  Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   u]   HTML parser

    Generates a tree structure from a stream of (possibly malformed) HTML.

    c         ` sh   |   _  | d k r' t j d  } n  | |    _ g    _   f d   t |  j   D   _ d S(   u  
        :arg tree: a treebuilder class controlling the type of tree that will be
            returned. Built in treebuilders can be accessed through
            html5lib.treebuilders.getTreeBuilder(treeType)

        :arg strict: raise an exception when a parse error is encountered

        :arg namespaceHTMLElements: whether or not to namespace HTML elements

        :arg debug: whether or not to enable debug mode which logs things

        Example:

        >>> from html5lib.html5parser import HTMLParser
        >>> parser = HTMLParser()                     # generates parser with etree builder
        >>> parser = HTMLParser('lxml', strict=True)  # generates parser with lxml builder which is strict

        u   etreec         ` s+   i  |  ]! \ } } |     j   |  q S(    (   t   tree(   t   .0t   namet   cls(   t   self(    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pys
   <dictcomp>y   s   	 N(	   t   strictt   NoneR   R   R6   t   errorst	   getPhasesR&   t   phases(   R:   R6   R;   R   t   debug(    (   R:   s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   __init__]   s    		u   divc         K` sz   | |  _  | |  _ | |  _ t j | d |  | |  _ |  j   y |  j   Wn% t k
 ru |  j   |  j   n Xd  S(   Nt   parser(	   t   innerHTMLModeR#   t	   scriptingR   t   HTMLTokenizert	   tokenizert   resett   mainLoopR   (   R:   t   streamt	   innerHTMLR#   RD   R    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   _parse|   s    			

c         C` s  |  j  j   t |  _ g  |  _ g  |  _ d |  _ |  j r |  j j	   |  _
 |  j
 t k rp |  j j |  j _ nH |  j
 t k r |  j j |  j _ n$ |  j
 d k r |  j j |  j _ n  |  j d |  _ |  j j   |  j   n t |  _
 |  j d |  _ d  |  _ d  |  _ t |  _ d  S(   Nu	   no quirksu	   plaintextu
   beforeHtmlu   initial(   R6   RG   t   Falset   firstStartTagR=   t   logt
   compatModeRC   R#   t   lowerRJ   R   RF   t   rcdataStatet   stateR   t   rawtextStatet   plaintextStateR?   t   phaset   insertHtmlElementt   resetInsertionModeR<   t	   lastPhaset   beforeRCDataPhaset   Truet
   framesetOK(   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRG      s*    								c         C` s'   t  |  d  s d S|  j j j d j S(   u   Name of the character encoding that was used to decode the input stream, or
        :obj:`None` if that is not determined yet

        u	   tokenizeri    N(   t   hasattrR<   RF   RI   t   charEncodingR8   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   documentEncoding   s    c         C` se   | j  d k rK | j t d k rK d | j k oJ | j d j t  d k S| j | j  f t k Sd  S(   Nu   annotation-xmlu   mathmlu   encodingu	   text/htmlu   application/xhtml+xml(   u	   text/htmlu   application/xhtml+xml(   R8   t	   namespaceR   t
   attributest	   translateR   R   (   R:   t   element(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   isHTMLIntegrationPoint   s    c         C` s   | j  | j f t k S(   N(   R_   R8   R   (   R:   Rb   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   isMathMLTextIntegrationPoint   s    c         C` s?  t  d } t  d } t  d } t  d } t  d } t  d } t  d } x|  j D]} d  }	 | }
 x=|
 d  k	 r|
 }	 |  j j r |  j j d n d  } | r | j n d  } | r | j n d  } |
 d	 } | | k r|  j |
 d
 |
 j d i    d  }
 qe t	 |  j j  d k s| |  j j
 k s|  j |  ru| | k rc| d t d d g  k s| | | f k s| t d k r| d k r| | k r| d d k s|  j |  r| | | | f k r|  j } n |  j d } | | k r| j |
  }
 qe | | k r&| j |
  }
 qe | | k rD| j |
  }
 qe | | k rb| j |
  }
 qe | | k r| j |
  }
 qe | | k re | j |
  }
 qe qe W| | k rP |	 d rP |	 d rP |  j d i |	 d d 6 qP qP Wt } g  } xG | r:| j |  j  |  j j   } | r|  j | k s7t  qqWd  S(   Nu
   Charactersu   SpaceCharactersu   StartTagu   EndTagu   Commentu   Doctypeu
   ParseErroriu   typeu   datau   datavarsi    u   nameu   mglyphu
   malignmarku   mathmlu   annotation-xmlu   svgu   inForeignContentu   selfClosingu   selfClosingAcknowledgedu&   non-void-element-with-trailing-solidus(   R   RF   R<   R6   t   openElementsR_   R8   t
   parseErrort   gett   lent   defaultNamespaceRd   t	   frozensetR   Rc   RU   R?   t   processCharacterst   processSpaceCharacterst   processStartTagt   processEndTagt   processCommentt   processDoctypeRZ   t   appendt
   processEOFt   AssertionError(   R:   t   CharactersTokent   SpaceCharactersTokent   StartTagTokent   EndTagTokent   CommentTokent   DoctypeTokent   ParseErrorTokent   tokent
   prev_tokent	   new_tokent   currentNodet   currentNodeNamespacet   currentNodeNameR*   RU   t	   reprocessR?   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRH      sp    






"
 			c         O` s&   |  j  | t d | |  |  j j   S(   u  Parse a HTML document into a well-formed tree

        :arg stream: a file-like object or string containing the HTML to be parsed

            The optional encoding parameter must be a string that indicates
            the encoding.  If specified, that encoding will be used,
            regardless of any BOM or later declaration (such as in a meta
            element).

        :arg scripting: treat noscript elements as if JavaScript was turned on

        :returns: parsed tree

        Example:

        >>> from html5lib.html5parser import HTMLParser
        >>> parser = HTMLParser()
        >>> parser.parse('<html><body><p>This is a doc</p></body></html>')
        <Element u'{http://www.w3.org/1999/xhtml}html' at 0x7feac4909db0>

        N(   RK   RL   R<   R6   t   getDocument(   R:   RI   t   argsR    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         O` s#   |  j  | t | |  |  j j   S(   uZ  Parse a HTML fragment into a well-formed tree fragment

        :arg container: name of the element we're setting the innerHTML
            property if set to None, default to 'div'

        :arg stream: a file-like object or string containing the HTML to be parsed

            The optional encoding parameter must be a string that indicates
            the encoding.  If specified, that encoding will be used,
            regardless of any BOM or later declaration (such as in a meta
            element)

        :arg scripting: treat noscript elements as if JavaScript was turned on

        :returns: parsed tree

        Example:

        >>> from html5lib.html5libparser import HTMLParser
        >>> parser = HTMLParser()
        >>> parser.parseFragment('<b>this is a fragment</b>')
        <Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090>

        (   RK   RZ   R6   t   getFragment(   R:   RI   R   R    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR$     s    u   XXX-undefined-errorc         C` s^   | d  k r i  } n  |  j j |  j j j   | | f  |  j rZ t t | |   n  d  S(   N(	   R<   R=   Rq   RF   RI   t   positionR;   t
   ParseErrorR   (   R:   t	   errorcodet   datavars(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRf   ;  s
    	%	c         C` s   t  | t  d  S(   N(   t   adjust_attributesR   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   C  s    c         C` s   t  | t  d  S(   N(   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   F  s    c         C` s   t  | t  d  S(   N(   R   t   adjustForeignAttributesMap(   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   I  s    c         C` s   |  j  j   d  S(   N(   RB   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   reparseTokenNormalL  s    c         C` s]  t  } i d d 6d d 6d d 6d d 6d d	 6d d
 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6} x |  j j d  d  d  D] } | j } d  } | |  j j d k r |  j s t  t } |  j } n  | d k r |  j s t  n  | r| j |  j j	 k rq n  | | k r5|  j
 | | } Pq | r |  j
 d } Pq q W| |  _ d  S(   Nu   inSelectu   selectu   inCellu   tdu   thu   inRowu   tru   inTableBodyu   tbodyu   theadu   tfootu	   inCaptionu   captionu   inColumnGroupu   colgroupu   inTableu   tableu   inBodyu   headu   bodyu
   inFramesetu   framesetu
   beforeHeadu   htmlii    (   u   selectu   colgroupu   headu   html(   RL   R6   Re   R8   R<   RJ   Rs   RZ   R_   Ri   R?   RU   (   R:   t   lastt   newModest   nodet   nodeNamet	   new_phase(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRW   P  sD    
 	c         C` su   | d k s t   |  j j |  | d k rC |  j j |  j _ n |  j j |  j _ |  j |  _ |  j	 d |  _ d  S(   Nu   RAWTEXTu   RCDATAu   text(   u   RAWTEXTu   RCDATA(
   Rs   R6   t   insertElementRF   RS   RR   RQ   RU   t   originalPhaseR?   (   R:   R{   t   contentType(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   parseRCDataRawtext|  s    N(   R3   R4   t   __doc__R<   RL   RZ   RA   RK   RG   t   propertyR^   Rc   Rd   RH   R   R$   Rf   R   R   R   R   RW   R   (    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   V   s"   	"
	
		C							,c         ` s!  d   } d   } d t  | |  |   f d     Y d  f d     Y} d  f d     Y} d	  f d
     Y} d  f d     Y} d  f d     Y} d  f d     Y} d  f    f d     Y  d  f d     Y}	 d  f  f d     Y}
 d  f  f d     Y d  f  f d     Y} d  f  f d     Y} d  f  f d     Y} d  f  f d      Y} d!  f  f d"     Y} d#  f  f d$     Y} d%  f d&     Y} d'  f  f d(     Y} d)  f d*     Y} d+  f  f d,     Y} d-  f  f d.     Y} d/  f d0     Y} d1  f d2     Y} i | d3 6| d4 6| d5 6| d6 6| d7 6| d8 6  d9 6|	 d: 6|
 d; 6 d< 6| d= 6| d> 6| d? 6| d@ 6| dA 6| dB 6| dC 6| dD 6| dE 6| dF 6| dG 6| dH 6| dI 6S(J   Nc         ` s,   d   t  j   D     f d   } | S(   u4   Logger that records which phase processes each tokenc         S` s   i  |  ] \ } } | |  q S(    (    (   R7   t   keyt   value(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pys
   <dictcomp>  s   	 c         ` s     j  j d  r t |  d k r | d } i  | d d 6} | d t k rd | d | d <n  |  j j j |  j j j j  |  j j	 j
 j  |  j
 j    j  | f    |  | |  S  |  | |  Sd  S(   Nu   processi    u   typeu   name(   R3   t
   startswithRh   R   RB   RN   Rq   RF   RR   RU   t	   __class__(   R:   R   R    R{   t   info(   R2   t
   type_names(    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   wrapped  s    $
	
(   R   R&   (   R2   R   (    (   R2   R   s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRN     s    c         S` s   |  r t  |  St Sd  S(   N(   R5   R*   (   t   use_metaclasst   metaclass_func(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   getMetaclass  s    
t   Phasec           B` se   e  Z d  Z d Z d   Z d   Z d   Z d   Z d	   Z d
   Z	 d   Z
 d   Z d   Z RS(   uN   Base class for helper object that implements each phase of processing
        u   parseru   treeu   __startTagCacheu   __endTagCachec         S` s(   | |  _  | |  _ i  |  _ i  |  _ d  S(   N(   RB   R6   t   _Phase__startTagCachet   _Phase__endTagCache(   R:   RB   R6   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRA     s    			c         S` s
   t   d  S(   N(   t   NotImplementedError(   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr     s    c         S` s!   |  j  j | |  j  j d  d  S(   Ni(   R6   t   insertCommentRe   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRo     s    c         S` s   |  j  j d  d  S(   Nu   unexpected-doctype(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRp     s    c         S` s   |  j  j | d  d  S(   Nu   data(   R6   t
   insertText(   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk     s    c         S` s   |  j  j | d  d  S(   Nu   data(   R6   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRl     s    c         S` s   | d } | |  j  k r) |  j  | } n` |  j | } |  j  | <xE t |  j   t |  j  d k r |  j  j t t |  j     qD W| |  S(   Nu   nameg?(   R   t   startTagHandlerRh   t   popt   nextt   iter(   R:   R{   R8   t   func(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRm     s    
%#c         S` s   |  j  j r0 | d d k r0 |  j  j d  n  xQ | d j   D]? \ } } | |  j j d j k rA | |  j j d j | <qA qA Wt |  j  _ d  S(   Nu   nameu   htmlu   non-html-rootu   datai    (   RB   RM   Rf   R&   R6   Re   R`   RL   (   R:   R{   t   attrR   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagHtml  s    c         S` s   | d } | |  j  k r) |  j  | } n` |  j | } |  j  | <xE t |  j   t |  j  d k r |  j  j t t |  j     qD W| |  S(   Nu   nameg?(   R   t   endTagHandlerRh   R   R   R   (   R:   R{   R8   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRn     s    
%#(   u   parseru   treeu   __startTagCacheu   __endTagCache(   R3   R4   R   t	   __slots__RA   Rr   Ro   Rp   Rk   Rl   Rm   R   Rn   (    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s   								
t   InitialPhasec           B` sY   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z RS(   c         S` s   d  S(   N(    (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRl     s    c         S` s   |  j  j | |  j  j  d  S(   N(   R6   R   t   document(   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRo     s    c      8   S` su  | d } | d } | d } | d } | d k sX | d  k	 sX | d  k	 rk | d k rk |  j j d  n  | d  k r d } n  |  j j |  | d k r | j t  } n  | s| d d k s| j dJ  s| dK k s| j dL  r | d  k s| r"| j   dD k r"dE |  j _	 n9 | j dM  sL| j dN  r[| d  k	 r[dH |  j _	 n  |  j j
 dI |  j _ d  S(O   Nu   nameu   publicIdu   systemIdu   correctu   htmlu   about:legacy-compatu   unknown-doctypeu    u*   +//silmaril//dtd html pro v0r11 19970101//u4   -//advasoft ltd//dtd html 3.0 aswedit + extensions//u*   -//as//dtd html 3.0 aswedit + extensions//u   -//ietf//dtd html 2.0 level 1//u   -//ietf//dtd html 2.0 level 2//u&   -//ietf//dtd html 2.0 strict level 1//u&   -//ietf//dtd html 2.0 strict level 2//u   -//ietf//dtd html 2.0 strict//u   -//ietf//dtd html 2.0//u   -//ietf//dtd html 2.1e//u   -//ietf//dtd html 3.0//u   -//ietf//dtd html 3.2 final//u   -//ietf//dtd html 3.2//u   -//ietf//dtd html 3//u   -//ietf//dtd html level 0//u   -//ietf//dtd html level 1//u   -//ietf//dtd html level 2//u   -//ietf//dtd html level 3//u"   -//ietf//dtd html strict level 0//u"   -//ietf//dtd html strict level 1//u"   -//ietf//dtd html strict level 2//u"   -//ietf//dtd html strict level 3//u   -//ietf//dtd html strict//u   -//ietf//dtd html//u(   -//metrius//dtd metrius presentational//u5   -//microsoft//dtd internet explorer 2.0 html strict//u.   -//microsoft//dtd internet explorer 2.0 html//u0   -//microsoft//dtd internet explorer 2.0 tables//u5   -//microsoft//dtd internet explorer 3.0 html strict//u.   -//microsoft//dtd internet explorer 3.0 html//u0   -//microsoft//dtd internet explorer 3.0 tables//u#   -//netscape comm. corp.//dtd html//u*   -//netscape comm. corp.//dtd strict html//u*   -//o'reilly and associates//dtd html 2.0//u3   -//o'reilly and associates//dtd html extended 1.0//u;   -//o'reilly and associates//dtd html extended relaxed 1.0//uN   -//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//uE   -//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//u$   -//spyglass//dtd html 2.0 extended//u+   -//sq//dtd html 2.0 hotmetal + extensions//u-   -//sun microsystems corp.//dtd hotjava html//u4   -//sun microsystems corp.//dtd hotjava strict html//u   -//w3c//dtd html 3 1995-03-24//u   -//w3c//dtd html 3.2 draft//u   -//w3c//dtd html 3.2 final//u   -//w3c//dtd html 3.2//u   -//w3c//dtd html 3.2s draft//u   -//w3c//dtd html 4.0 frameset//u#   -//w3c//dtd html 4.0 transitional//u(   -//w3c//dtd html experimental 19960712//u&   -//w3c//dtd html experimental 970421//u   -//w3c//dtd w3 html//u   -//w3o//dtd w3 html 3.0//u#   -//webtechs//dtd mozilla html 2.0//u   -//webtechs//dtd mozilla html//u$   -//w3o//dtd w3 html strict 3.0//en//u"   -/w3c/dtd html 4.0 transitional/enu    -//w3c//dtd html 4.01 frameset//u$   -//w3c//dtd html 4.01 transitional//u:   http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtdu   quirksu    -//w3c//dtd xhtml 1.0 frameset//u$   -//w3c//dtd xhtml 1.0 transitional//u   limited quirksu
   beforeHtml(7   u*   +//silmaril//dtd html pro v0r11 19970101//u4   -//advasoft ltd//dtd html 3.0 aswedit + extensions//u*   -//as//dtd html 3.0 aswedit + extensions//u   -//ietf//dtd html 2.0 level 1//u   -//ietf//dtd html 2.0 level 2//u&   -//ietf//dtd html 2.0 strict level 1//u&   -//ietf//dtd html 2.0 strict level 2//u   -//ietf//dtd html 2.0 strict//u   -//ietf//dtd html 2.0//u   -//ietf//dtd html 2.1e//u   -//ietf//dtd html 3.0//u   -//ietf//dtd html 3.2 final//u   -//ietf//dtd html 3.2//u   -//ietf//dtd html 3//u   -//ietf//dtd html level 0//u   -//ietf//dtd html level 1//u   -//ietf//dtd html level 2//u   -//ietf//dtd html level 3//u"   -//ietf//dtd html strict level 0//u"   -//ietf//dtd html strict level 1//u"   -//ietf//dtd html strict level 2//u"   -//ietf//dtd html strict level 3//u   -//ietf//dtd html strict//u   -//ietf//dtd html//u(   -//metrius//dtd metrius presentational//u5   -//microsoft//dtd internet explorer 2.0 html strict//u.   -//microsoft//dtd internet explorer 2.0 html//u0   -//microsoft//dtd internet explorer 2.0 tables//u5   -//microsoft//dtd internet explorer 3.0 html strict//u.   -//microsoft//dtd internet explorer 3.0 html//u0   -//microsoft//dtd internet explorer 3.0 tables//u#   -//netscape comm. corp.//dtd html//u*   -//netscape comm. corp.//dtd strict html//u*   -//o'reilly and associates//dtd html 2.0//u3   -//o'reilly and associates//dtd html extended 1.0//u;   -//o'reilly and associates//dtd html extended relaxed 1.0//uN   -//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//uE   -//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//u$   -//spyglass//dtd html 2.0 extended//u+   -//sq//dtd html 2.0 hotmetal + extensions//u-   -//sun microsystems corp.//dtd hotjava html//u4   -//sun microsystems corp.//dtd hotjava strict html//u   -//w3c//dtd html 3 1995-03-24//u   -//w3c//dtd html 3.2 draft//u   -//w3c//dtd html 3.2 final//u   -//w3c//dtd html 3.2//u   -//w3c//dtd html 3.2s draft//u   -//w3c//dtd html 4.0 frameset//u#   -//w3c//dtd html 4.0 transitional//u(   -//w3c//dtd html experimental 19960712//u&   -//w3c//dtd html experimental 970421//u   -//w3c//dtd w3 html//u   -//w3o//dtd w3 html 3.0//u#   -//webtechs//dtd mozilla html 2.0//u   -//webtechs//dtd mozilla html//(   u$   -//w3o//dtd w3 html strict 3.0//en//u"   -/w3c/dtd html 4.0 transitional/enu   html(   u    -//w3c//dtd html 4.01 frameset//u$   -//w3c//dtd html 4.01 transitional//(   u    -//w3c//dtd xhtml 1.0 frameset//u$   -//w3c//dtd xhtml 1.0 transitional//(   u    -//w3c//dtd html 4.01 frameset//u$   -//w3c//dtd html 4.01 transitional//(   R<   RB   Rf   R6   t   insertDoctypeRa   R   R   RP   RO   R?   RU   (   R:   R{   R8   t   publicIdt   systemIdt   correct(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRp     s    



	                                                      	 	 	 	 	c         S` s&   d |  j  _ |  j  j d |  j  _ d  S(   Nu   quirksu
   beforeHtml(   RB   RO   R?   RU   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   anythingElseZ  s    c         S` s   |  j  j d  |  j   | S(   Nu   expected-doctype-but-got-chars(   RB   Rf   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk   ^  s    
c         S` s,   |  j  j d i | d d 6 |  j   | S(   Nu"   expected-doctype-but-got-start-tagu   name(   RB   Rf   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRm   c  s    
c         S` s,   |  j  j d i | d d 6 |  j   | S(   Nu    expected-doctype-but-got-end-tagu   name(   RB   Rf   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRn   i  s    
c         S` s   |  j  j d  |  j   t S(   Nu   expected-doctype-but-got-eof(   RB   Rf   R   RZ   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr   o  s    
(   R3   R4   t   tupleR   Rl   Ro   Rp   R   Rk   Rm   Rn   Rr   (    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s   				_				t   BeforeHtmlPhasec           B` sP   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 RS(   c         S` s3   |  j  j t d d   |  j j d |  j _ d  S(   Nu   htmlu   StartTagu
   beforeHead(   R6   t
   insertRoott   impliedTagTokenRB   R?   RU   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRV   x  s    c         S` s   |  j    t S(   N(   RV   RZ   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr   }  s    
c         S` s   |  j  j | |  j  j  d  S(   N(   R6   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRo     s    c         S` s   d  S(   N(    (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRl     s    c         S` s   |  j    | S(   N(   RV   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk     s    
c         S` s-   | d d k r t  |  j _ n  |  j   | S(   Nu   nameu   html(   RZ   RB   RM   RV   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRm     s    
c         S` sC   | d d k r1 |  j  j d i | d d 6 n |  j   | Sd  S(   Nu   nameu   headu   bodyu   htmlu   bru   unexpected-end-tag-before-html(   u   headu   bodyu   htmlu   br(   RB   Rf   RV   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRn     s
    
(   R3   R4   R   R   RV   Rr   Ro   Rl   Rk   Rm   Rn   (    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   t  s   							t   BeforeHeadPhasec           B` s   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z e j d e f d	 e f g  Z e	 e _ e j d e
 f g  Z e e _ RS(   c         S` s   |  j  t d d   t S(   Nu   headu   StartTag(   t   startTagHeadR   RZ   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr     s    c         S` s   d  S(   N(    (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRl     s    c         S` s   |  j  t d d   | S(   Nu   headu   StartTag(   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk     s    c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` s@   |  j  j |  |  j  j d |  j  _ |  j j d |  j _ d  S(   Niu   inHead(   R6   R   Re   t   headPointerRB   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` s   |  j  t d d   | S(   Nu   headu   StartTag(   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagOther  s    c         S` s   |  j  t d d   | S(   Nu   headu   StartTag(   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagImplyHead  s    c         S` s"   |  j  j d i | d d 6 d  S(   Nu   end-tag-after-implied-rootu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagOther  s    u   htmlu   headu   bodyu   br(   u   headu   bodyu   htmlu   br(   R3   R4   R   R   Rr   Rl   Rk   R   R   R   R   R   R	   t   MethodDispatcherR   t   defaultR   (    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    											t   InHeadPhasec           B` s"  e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z e j d e f d e
 f d e f d e f d e f d e f d e	 f d e f g  Z e e _ e j d e f d  e f g  Z e e _ RS(!   c         S` s   |  j    t S(   N(   R   RZ   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr     s    
c         S` s   |  j    | S(   N(   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk     s    
c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` s   |  j  j d  d  S(   Nu!   two-heads-are-not-better-than-one(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` s.   |  j  j |  |  j  j j   t | d <d  S(   Nu   selfClosingAcknowledged(   R6   R   Re   R   RZ   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagBaseLinkCommand  s    c         S` s   |  j  j |  |  j  j j   t | d <| d } |  j j j j d d k r d | k ry |  j j j j	 | d  q d | k r d | k r | d j
   d k r t j | d j d	   } t j |  } | j   } |  j j j j	 |  q n  d  S(
   Nu   selfClosingAcknowledgedu   datai   u	   tentativeu   charsetu   contentu
   http-equivu   content-typeu   utf-8(   R6   R   Re   R   RZ   RB   RF   RI   R]   t   changeEncodingRP   R   t   EncodingBytest   encodet   ContentAttrParserR   (   R:   R{   R`   t   dataRB   t   codec(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagMeta  s    

c         S` s   |  j  j | d  d  S(   Nu   RCDATA(   RB   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagTitle  s    c         S` s   |  j  j | d  d  S(   Nu   RAWTEXT(   RB   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagNoFramesStyle  s    c         S` sL   |  j  j r" |  j  j | d  n& |  j j |  |  j  j d |  j  _ d  S(   Nu   RAWTEXTu   inHeadNoscript(   RB   RD   R   R6   R   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagNoscript  s    c         S` sT   |  j  j |  |  j j j |  j j _ |  j j |  j _ |  j j d |  j _ d  S(   Nu   text(	   R6   R   RB   RF   t   scriptDataStateRR   RU   R   R?   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagScript   s    c         S` s   |  j    | S(   N(   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    
c         S` sQ   |  j  j j j   } | j d k s7 t d | j   |  j  j d |  j  _ d  S(   Nu   headu   Expected head got %su	   afterHead(   RB   R6   Re   R   R8   Rs   R?   RU   (   R:   R{   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt
   endTagHead
  s    "c         S` s   |  j    | S(   N(   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagHtmlBodyBr  s    
c         S` s"   |  j  j d i | d d 6 d  S(   Nu   unexpected-end-tagu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` s   |  j  t d   d  S(   Nu   head(   R   R   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    u   htmlu   titleu   noframesu   styleu   noscriptu   scriptu   baseu   basefontu   bgsoundu   commandu   linku   metau   headu   bru   body(   u   noframesu   style(   u   baseu   basefontu   bgsoundu   commandu   link(   u   bru   htmlu   body(   R3   R4   R   R   Rr   Rk   R   R   R   R   R   R   R   R   R   R   R   R   R   R	   R   R   R   R   (    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s>   																								t   InHeadNoscriptPhasec           B` s   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z d   Z e j d e f d e	 f d e
 f g  Z e e _ e j d e f d e f g  Z e e _ RS(   c         S` s   |  j  j d  |  j   t S(   Nu   eof-in-head-noscript(   RB   Rf   R   RZ   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr   /  s    
c         S` s   |  j  j d j |  S(   Nu   inHead(   RB   R?   Ro   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRo   4  s    c         S` s   |  j  j d  |  j   | S(   Nu   char-in-head-noscript(   RB   Rf   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk   7  s    
c         S` s   |  j  j d j |  S(   Nu   inHead(   RB   R?   Rl   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRl   <  s    c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   ?  s    c         S` s   |  j  j d j |  S(   Nu   inHead(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   B  s    c         S` s"   |  j  j d i | d d 6 d  S(   Nu   unexpected-start-tagu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagHeadNoscriptE  s    c         S` s,   |  j  j d i | d d 6 |  j   | S(   Nu   unexpected-inhead-noscript-tagu   name(   RB   Rf   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   H  s    
c         S` sQ   |  j  j j j   } | j d k s7 t d | j   |  j  j d |  j  _ d  S(   Nu   noscriptu   Expected noscript got %su   inHead(   RB   R6   Re   R   R8   Rs   R?   RU   (   R:   R{   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagNoscriptM  s    "c         S` s,   |  j  j d i | d d 6 |  j   | S(   Nu   unexpected-inhead-noscript-tagu   name(   RB   Rf   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagBrR  s    
c         S` s"   |  j  j d i | d d 6 d  S(   Nu   unexpected-end-tagu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   W  s    c         S` s   |  j  t d   d  S(   Nu   noscript(   R   R   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   Z  s    u   htmlu   basefontu   bgsoundu   linku   metau   noframesu   styleu   headu   noscriptu   br(   u   basefontu   bgsoundu   linku   metau   noframesu   style(   u   headu   noscript(   R3   R4   R   R   Rr   Ro   Rk   Rl   R   R   R   R   R   R   R   R   R	   R   R   R   R   (    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   ,  s,   																	t   AfterHeadPhasec           B` s   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z e j d e f d e f d e f d e	 f d e
 f g  Z e e _ e j d e f g  Z e e _ RS(   c         S` s   |  j    t S(   N(   R   RZ   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr   n  s    
c         S` s   |  j    | S(   N(   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk   r  s    
c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   v  s    c         S` s6   t  |  j _ |  j j |  |  j j d |  j _ d  S(   Nu   inBody(   RL   RB   R[   R6   R   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagBodyy  s    c         S` s*   |  j  j |  |  j j d |  j _ d  S(   Nu
   inFrameset(   R6   R   RB   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagFrameset~  s    c         S` s   |  j  j d i | d d 6 |  j j j |  j j  |  j  j d j |  xG |  j j d  d  d  D], } | j d k rh |  j j j	 |  Pqh qh Wd  S(   Nu#   unexpected-start-tag-out-of-my-headu   nameu   inHeadiu   head(
   RB   Rf   R6   Re   Rq   R   R?   Rm   R8   t   remove(   R:   R{   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagFromHead  s     c         S` s"   |  j  j d i | d d 6 d  S(   Nu   unexpected-start-tagu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` s   |  j    | S(   N(   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    
c         S` s   |  j    | S(   N(   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    
c         S` s"   |  j  j d i | d d 6 d  S(   Nu   unexpected-end-tagu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` s?   |  j  j t d d   |  j j d |  j _ t |  j _ d  S(   Nu   bodyu   StartTagu   inBody(   R6   R   R   RB   R?   RU   RZ   R[   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    u   htmlu   bodyu   framesetu   baseu   basefontu   bgsoundu   linku   metau   noframesu   scriptu   styleu   titleu   headu   br(	   u   baseu   basefontu   bgsoundu   linku   metau   noframesu   scriptu   styleu   title(   u   bodyu   htmlu   br(   R3   R4   R   R   Rr   Rk   R   R   R   R   R   R   R   R   R   R	   R   R   R   R   (    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   k  s0   							
								 		t   InBodyPhasec        ,   ` s  e  Z d Z   f d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z  d   Z! d    Z" d!   Z# d"   Z$ d#   Z% d$   Z& d%   Z' d&   Z( d'   Z) d(   Z* d)   Z+ d*   Z, d+   Z- d,   Z. d-   Z/ d.   Z0 d/   Z1 d0   Z2 d1   Z3 d2   Z4 d3   Z5 e6 j7 d4  j8 f d e
 f d> e f d? e f d e f e9 e f d e f dY e f d e f d] e f d^ e f d e f dk e f dl e f d e f dp e f dq e f d e f d e f d{ e f d| e f d} e f d~ e f d e  f d e! f d e" f d e# f d e% f d e& f d e$ f d e' f d e( f d e) f g!  Z: e* e: _; e6 j7 d> e, f d4 e- f d e. f dY e/ f dS e+ f d e0 f e9 e1 f d e2 f d e3 f ds e4 f g
  Z< e5 e< _; RS(   u   processSpaceCharactersc         ` s)   t    |   j | |   |  j |  _ d  S(   N(   t   superRA   t   processSpaceCharactersNonPreRl   (   R:   R   R    (   R   (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRA     s    c         S` s4   | j  | j  k o3 | j | j k o3 | j | j k S(   N(   R8   R_   R`   (   R:   t   node1t   node2(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   isMatchingFormattingElement  s    c         S` s   |  j  j |  |  j  j d } g  } xS |  j  j d  d  d  D]8 } | t k rV Pq@ |  j | |  r@ | j |  q@ q@ Wt |  d k s t  t |  d k r |  j  j j	 | d  n  |  j  j j |  d  S(   Nii   (
   R6   R   Re   t   activeFormattingElementsR   R   Rq   Rh   Rs   R   (   R:   R{   Rb   t   matchingElementsR   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   addFormattingElement  s     c         S` sW   t  d  } xD |  j j d  d  d  D]) } | j | k r& |  j j d  Pq& q& Wd  S(   Nu   ddu   dtu   liu   pu   tbodyu   tdu   tfootu   thu   theadu   tru   bodyu   htmliu    expected-closing-tag-but-got-eof(   u   ddu   dtu   liu   pu   tbodyu   tdu   tfootu   thu   theadu   tru   bodyu   html(   Rj   R6   Re   R8   RB   Rf   (   R:   t   allowed_elementsR   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr     s     	 c         S` s   | d } |  j  |  _ | j d  rb |  j j d j d k rb |  j j d j   rb | d } n  | r |  j j   |  j j |  n  d  S(	   Nu   datau   
iu   preu   listingu   textareai   (   u   preu   listingu   textarea(	   R   Rl   R   R6   Re   R8   t
   hasContentt#   reconstructActiveFormattingElementsR   (   R:   R{   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt!   processSpaceCharactersDropNewline  s    
c         S` s}   | d d k r d  S|  j  j   |  j  j | d  |  j j ry t g  | d D] } | t k ^ qO  ry t |  j _ n  d  S(   Nu   datau    (   R6   R   R   RB   R[   t   anyR
   RL   (   R:   R{   t   char(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk     s    #c         S` s%   |  j  j   |  j  j | d  d  S(   Nu   data(   R6   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` s   |  j  j d j |  S(   Nu   inHead(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagProcessInHead  s    c         S` s   |  j  j d i d d 6 t |  j j  d k sK |  j j d j d k r` |  j  j s t  n` t |  j  _	 xQ | d j
   D]? \ } } | |  j j d j k r} | |  j j d j | <q} q} Wd  S(   Nu   unexpected-start-tagu   bodyu   namei   u   data(   RB   Rf   Rh   R6   Re   R8   RJ   Rs   RL   R[   R&   R`   (   R:   R{   R   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` s  |  j  j d i d d 6 t |  j j  d k sK |  j j d j d k r` |  j  j s t  n |  j  j so n |  j j d j	 r |  j j d j	 j
 |  j j d  n  x- |  j j d j d k r |  j j j   q W|  j j |  |  j  j d |  j  _ d  S(	   Nu   unexpected-start-tagu   framesetu   namei   u   bodyiu   htmlu
   inFrameset(   RB   Rf   Rh   R6   Re   R8   RJ   Rs   R[   t   parentt   removeChildR   R   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    1'c         S` sB   |  j  j d d d r. |  j t d   n  |  j  j |  d  S(   Nu   pt   variantu   button(   R6   t   elementInScopet   endTagPR   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagCloseP  s    c         S` sZ   |  j  j d d d r. |  j t d   n  |  j  j |  t |  j _ |  j |  _	 d  S(   Nu   pR   u   button(
   R6   R   R   R   R   RL   RB   R[   R   Rl   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagPreListing  s
    c         S` s   |  j  j r) |  j j d i d d 6 nT |  j  j d d d rW |  j t d   n  |  j  j |  |  j  j d |  j  _ d  S(   Nu   unexpected-start-tagu   formu   nameu   pR   u   buttoni(	   R6   t   formPointerRB   Rf   R   R   R   R   Re   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagForm  s    c         S` s   t  |  j _ i d g d 6d d g d 6d d g d 6} | | d } xn t |  j j  D]Z } | j | k r |  j j j t	 | j d   Pn  | j
 t k rW | j d k rW PqW qW W|  j j d d	 d
 r |  j j j t	 d d   n  |  j j |  d  S(   Nu   liu   dtu   ddu   nameu   EndTagu   addressu   divu   pR   u   button(   u   addressu   divu   p(   RL   RB   R[   t   reversedR6   Re   R8   RU   Rn   R   t	   nameTupleR   R   R   (   R:   R{   t   stopNamesMapt	   stopNamesR   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagListItem&  s"    c         S` sZ   |  j  j d d d r. |  j t d   n  |  j  j |  |  j j j |  j j _ d  S(   Nu   pR   u   button(	   R6   R   R   R   R   RB   RF   RT   RR   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagPlaintext<  s    c         S` s   |  j  j d d d r. |  j t d   n  |  j  j d j t k rx |  j j d i | d d 6 |  j  j j	   n  |  j  j
 |  d  S(   Nu   pR   u   buttoniu   unexpected-start-tagu   name(   R6   R   R   R   Re   R8   R   RB   Rf   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagHeadingB  s    c         S` s   |  j  j d  } | r |  j j d i d d 6d d 6 |  j t d   | |  j  j k rt |  j  j j |  n  | |  j  j k r |  j  j j |  q n  |  j  j	   |  j
 |  d  S(   Nu   au$   unexpected-start-tag-implies-end-tagu	   startNameu   endName(   R6   t!   elementInActiveFormattingElementsRB   Rf   t   endTagFormattingR   Re   R   R   R   R   (   R:   R{   t   afeAElement(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt	   startTagAJ  s    c         S` s   |  j  j   |  j |  d  S(   N(   R6   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagFormattingW  s    c         S` st   |  j  j   |  j  j d  rc |  j j d i d d 6d d 6 |  j t d   |  j  j   n  |  j |  d  S(   Nu   nobru$   unexpected-start-tag-implies-end-tagu	   startNameu   endName(   R6   R   R   RB   Rf   Rn   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagNobr[  s    c         S` sw   |  j  j d  rJ |  j j d i d d 6d d 6 |  j t d   | S|  j  j   |  j  j |  t |  j _	 d  S(   Nu   buttonu$   unexpected-start-tag-implies-end-tagu	   startNameu   endName(
   R6   R   RB   Rf   Rn   R   R   R   RL   R[   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagButtone  s    c         S` s@   |  j  j   |  j  j |  |  j  j j t  t |  j _ d  S(   N(	   R6   R   R   R   Rq   R   RL   RB   R[   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagAppletMarqueeObjectp  s    c         S` s^   |  j  j d d d r. |  j t d   n  |  j  j   t |  j _ |  j j | d  d  S(   Nu   pR   u   buttonu   RAWTEXT(	   R6   R   R   R   R   RL   RB   R[   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagXmpv  s
    c         S` sy   |  j  j d k rC |  j j d d d rC |  j t d   qC n  |  j j |  t |  j  _ |  j  j	 d |  j  _
 d  S(   Nu   quirksu   pR   u   buttonu   inTable(   RB   RO   R6   R   Rn   R   R   RL   R[   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagTable}  s    c         S` sG   |  j  j   |  j  j |  |  j  j j   t | d <t |  j _ d  S(   Nu   selfClosingAcknowledged(	   R6   R   R   Re   R   RZ   RL   RB   R[   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagVoidFormatting  s
    
c         S` sY   |  j  j } |  j |  d | d k rU | d d j t  d k rU | |  j  _ n  d  S(   Nu   typeu   datau   hidden(   RB   R[   R  Ra   R   (   R:   R{   R[   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagInput  s
    c         S` s.   |  j  j |  |  j  j j   t | d <d  S(   Nu   selfClosingAcknowledged(   R6   R   Re   R   RZ   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagParamSource  s    c         S` sh   |  j  j d d d r. |  j t d   n  |  j  j |  |  j  j j   t | d <t |  j	 _
 d  S(   Nu   pR   u   buttonu   selfClosingAcknowledged(   R6   R   R   R   R   Re   R   RZ   RL   RB   R[   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt
   startTagHr  s    
c      	   S` sO   |  j  j d i d d 6d d 6 |  j t d d d | d d	 | d
  d  S(   Nu   unexpected-start-tag-treated-asu   imageu   originalNameu   imgu   newNameu   StartTagR`   u   datat   selfClosingu   selfClosing(   RB   Rf   Rm   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagImage  s
    
c      	   S` s  |  j  j d i d d 6 |  j j r* d  Si  } d | d k rU | d d | d <n  |  j t d d d |  |  j t d	 d   |  j t d
 d   d | d k r | d d } n d } |  j i t d d 6| d 6 | d j   } d | k r	| d =n  d | k r| d =n  d | d <|  j t d d d | d | d  |  j	 t d
   |  j t d	 d   |  j	 t d   d  S(   Nu   deprecated-tagu   isindexu   nameu   actionu   datau   formu   StartTagR`   u   hru   labelu   promptu3   This is a searchable index. Enter search keywords: u
   Charactersu   typeu   inputR
  u   selfClosing(
   RB   Rf   R6   R   Rm   R   Rk   R   t   copyRn   (   R:   R{   t
   form_attrst   promptR`   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagIsIndex  s6    



c         S` sD   |  j  j |  |  j j j |  j j _ |  j |  _ t |  j _	 d  S(   N(
   R6   R   RB   RF   RQ   RR   R   Rl   RL   R[   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagTextarea  s    c         S` s   t  |  j _ |  j |  d  S(   N(   RL   RB   R[   t   startTagRawtext(   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagIFrame  s    c         S` s-   |  j  j r |  j |  n |  j |  d  S(   N(   RB   RD   R  R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` s   |  j  j | d  d S(   u8   iframe, noembed noframes, noscript(if scripting enabled)u   RAWTEXTN(   RB   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR    s    c         S` sY   |  j  j d j d k r5 |  j j j t d   n  |  j  j   |  j j  j |  d  S(   Niu   option(	   R6   Re   R8   RB   RU   Rn   R   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagOpt  s    c         S` s   |  j  j   |  j  j |  t |  j _ |  j j |  j j d |  j j d |  j j d |  j j d |  j j d |  j j d f k r |  j j d |  j _ n |  j j d |  j _ d  S(	   Nu   inTableu	   inCaptionu   inColumnGroupu   inTableBodyu   inRowu   inCellu   inSelectInTableu   inSelect(   R6   R   R   RL   RB   R[   RU   R?   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagSelect  s    c         S` s_   |  j  j d  rK |  j  j   |  j  j d j d k rK |  j j   qK n  |  j  j |  d  S(   Nu   rubyi(   R6   R   t   generateImpliedEndTagsRe   R8   RB   Rf   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagRpRt  s
    c         S` sv   |  j  j   |  j j |  |  j j |  t d | d <|  j  j |  | d rr |  j  j j   t	 | d <n  d  S(   Nu   mathmlu	   namespaceu   selfClosingu   selfClosingAcknowledged(
   R6   R   RB   R   R   R   R   Re   R   RZ   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagMath  s    
c         S` sv   |  j  j   |  j j |  |  j j |  t d | d <|  j  j |  | d rr |  j  j j   t	 | d <n  d  S(   Nu   svgu	   namespaceu   selfClosingu   selfClosingAcknowledged(
   R6   R   RB   R   R   R   R   Re   R   RZ   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagSvg  s    
c         S` s"   |  j  j d i | d d 6 d S(   u5   Elements that should be children of other elements that have a
            different insertion mode; here they are ignored
            "caption", "col", "colgroup", "frame", "frameset", "head",
            "option", "optgroup", "tbody", "td", "tfoot", "th", "thead",
            "tr", "noscript"
            u   unexpected-start-tag-ignoredu   nameN(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagMisplaced  s    c         S` s!   |  j  j   |  j  j |  d  S(   N(   R6   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` s   |  j  j d d d sa |  j t d d   |  j j d i d d 6 |  j t d d   n |  j  j d  |  j  j d j	 d k r |  j j d i d d 6 n  |  j  j j
   } x% | j	 d k r |  j  j j
   } q Wd  S(	   Nu   pR   u   buttonu   StartTagu   unexpected-end-tagu   nameu   EndTagi(   R6   R   R   R   RB   Rf   R   R  Re   R8   R   (   R:   R{   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` s   |  j  j d  s# |  j j   d  S|  j  j d j d k r xX |  j  j d D]C } | j t d  k rM |  j j d i d d 6| j d 6 PqM qM Wn  |  j j d |  j _ d  S(   Nu   bodyii   u   ddu   dtu   liu   optgroupu   optionu   pu   rpu   rtu   tbodyu   tdu   tfootu   thu   theadu   tru   htmlu$   expected-one-end-tag-but-got-anotheru   gotNameu   expectedNameu	   afterBody(   u   ddu   dtu   liu   optgroupu   optionu   pu   rpu   rtu   tbodyu   tdu   tfootu   thu   theadu   tru   bodyu   html(	   R6   R   RB   Rf   Re   R8   Rj   R?   RU   (   R:   R{   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt
   endTagBody)  s    	   	c         S` s-   |  j  j d  r) |  j t d   | Sd  S(   Nu   body(   R6   R   R  R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt
   endTagHtml;  s    c         S` s   | d d k r |  j  |  _ n  |  j j | d  } | rK |  j j   n  |  j j d j | d k r |  j j d i | d d 6 n  | r |  j j j	   } x, | j | d k r |  j j j	   } q Wn  d  S(   Nu   nameu   preiu   end-tag-too-early(
   R   Rl   R6   R   R  Re   R8   RB   Rf   R   (   R:   R{   t   inScopeR   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagBlockA  s    !c         S` s   |  j  j } d  |  j  _ | d  k s7 |  j  j |  rT |  j j d i d d 6 nS |  j  j   |  j  j d | k r |  j j d i d d 6 n  |  j  j j |  d  S(   Nu   unexpected-end-tagu   formu   nameiu   end-tag-too-early-ignored(	   R6   R   R<   R   RB   Rf   R  Re   R   (   R:   R{   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt
   endTagFormO  s    c         S` s   | d d k r d } n d  } |  j j | d d | s\ |  j j d i | d d 6 n |  j j d | d  |  j j d j | d k r |  j j d i | d d 6 n  |  j j j   } x) | j | d k r |  j j j   } q Wd  S(	   Nu   nameu   liu   listR   u   unexpected-end-tagt   excludeiu   end-tag-too-early(	   R<   R6   R   RB   Rf   R  Re   R8   R   (   R:   R{   R   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagListItem\  s    	!	c         S` s   x1 t  D]) } |  j j |  r |  j j   Pq q W|  j j d j | d k rr |  j j d i | d d 6 n  x^ t  D]V } |  j j |  ry |  j j j   } x% | j t  k r |  j j j   } q WPqy qy Wd  S(   Niu   nameu   end-tag-too-early(	   R   R6   R   R  Re   R8   RB   Rf   R   (   R:   R{   t   item(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagHeadingm  s    !c         S` s3  d } x&| d k  r.| d 7} |  j  j | d  } | sd | |  j  j k ru |  j  j | j  ru |  j |  d S| |  j  j k r |  j j d i | d d 6 |  j  j j	 |  d S|  j  j | j  s |  j j d i | d d 6 d S| |  j  j d k r*|  j j d	 i | d d 6 n  |  j  j j
 |  } d } x1 |  j  j | D] } | j t k rV| } PqVqVW| d k r|  j  j j   } x" | | k r|  j  j j   } qW|  j  j j	 |  d S|  j  j | d } |  j  j j
 |  } | }	 }
 d } |  j  j j
 |
  } x| d
 k  r9| d 7} | d 8} |  j  j | }
 |
 |  j  j k r|  j  j j	 |
  q$n  |
 | k rPn  |	 | k r|  j  j j
 |
  d } n  |
 j   } | |  j  j |  j  j j
 |
  <| |  j  j |  j  j j
 |
  <| }
 |	 j r#|	 j j |	  n  |
 j |	  |
 }	 q$W|	 j rV|	 j j |	  n  | j t d  k r|  j  j   \ } } | j |	 |  n | j |	  | j   } | j |  | j |  |  j  j j	 |  |  j  j j | |  |  j  j j	 |  |  j  j j |  j  j j
 |  d |  q	 Wd S(   u)   The much-feared adoption agency algorithmi    i   i   u   nameNu   adoption-agency-1.2u   adoption-agency-4.4iu   adoption-agency-1.3i   u   tableu   tbodyu   tfootu   theadu   tr(   u   tableu   tbodyu   tfootu   theadu   tr(   R6   R   Re   R   R8   R   RB   Rf   R   R   t   indexR<   R   R   R   t	   cloneNodeR   R   t   appendChildRj   t   getTableMisnestedNodePositiont   insertBeforet   reparentChildrent   insert(   R:   R{   t   outerLoopCountert   formattingElementt   afeIndext   furthestBlockRb   t   commonAncestort   bookmarkt   lastNodeR   t   innerLoopCounterR#  t   cloneR   R'  (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   |  s    

	!



	
	c         S` s   |  j  j | d  r& |  j  j   n  |  j  j d j | d k rd |  j j d i | d d 6 n  |  j  j | d  r |  j  j j   } x) | j | d k r |  j  j j   } q W|  j  j   n  d  S(   Nu   nameiu   end-tag-too-early(	   R6   R   R  Re   R8   RB   Rf   R   t   clearActiveFormattingElements(   R:   R{   Rb   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagAppletMarqueeObject  s    !c         S` s[   |  j  j d i d d 6d d 6 |  j j   |  j j t d d   |  j j j   d  S(   Nu   unexpected-end-tag-treated-asu   bru   originalNameu
   br elementu   newNameu   StartTag(   RB   Rf   R6   R   R   R   Re   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   +  s
    c         S` s   x |  j  j d  d  d  D] } | j | d k r |  j  j d | d  |  j  j d j | d k r |  j j d i | d d 6 n  x |  j  j j   | k r q WPq | j t k r |  j j d i | d d 6 Pq q Wd  S(   Niu   nameR  u   unexpected-end-tag(	   R6   Re   R8   R  RB   Rf   R   R   R   (   R:   R{   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   2  s     !u   htmlu   baseu   basefontu   bgsoundu   commandu   linku   metau   scriptu   styleu   titleu   bodyu   framesetu   addressu   articleu   asideu
   blockquoteu   centeru   detailsu   diru   divu   dlu   fieldsetu
   figcaptionu   figureu   footeru   headeru   hgroupu   mainu   menuu   navu   olu   pu   sectionu   summaryu   ulu   preu   listingu   formu   liu   ddu   dtu	   plaintextu   au   bu   bigu   codeu   emu   fontu   iu   su   smallu   strikeu   strongu   ttu   uu   nobru   buttonu   appletu   marqueeu   objectu   xmpu   tableu   areau   bru   embedu   imgu   keygenu   wbru   paramu   sourceu   tracku   inputu   hru   imageu   isindexu   textareau   iframeu   noscriptu   noembedu   noframesu   selectu   rpu   rtu   optionu   optgroupu   mathu   svgu   captionu   colu   colgroupu   frameu   headu   tbodyu   tdu   tfootu   thu   theadu   tru   dialog(   u   processSpaceCharacters(	   u   baseu   basefontu   bgsoundu   commandu   linku   metau   scriptu   styleu   title(   u   addressu   articleu   asideu
   blockquoteu   centeru   detailsu   diru   divu   dlu   fieldsetu
   figcaptionu   figureu   footeru   headeru   hgroupu   mainu   menuu   navu   olu   pu   sectionu   summaryu   ul(   u   preu   listing(   u   liu   ddu   dt(   u   bu   bigu   codeu   emu   fontu   iu   su   smallu   strikeu   strongu   ttu   u(   u   appletu   marqueeu   object(   u   areau   bru   embedu   imgu   keygenu   wbr(   u   paramu   sourceu   track(   u   noembedu   noframes(   u   rpu   rt(   u   optionu   optgroup(   u   captionu   colu   colgroupu   frameu   headu   tbodyu   tdu   tfootu   thu   theadu   tr(   u   addressu   articleu   asideu
   blockquoteu   buttonu   centeru   detailsu   dialogu   diru   divu   dlu   fieldsetu
   figcaptionu   figureu   footeru   headeru   hgroupu   listingu   mainu   menuu   navu   olu   preu   sectionu   summaryu   ul(   u   ddu   dtu   li(   u   au   bu   bigu   codeu   emu   fontu   iu   nobru   su   smallu   strikeu   strongu   ttu   u(   u   appletu   marqueeu   object(=   R3   R4   R   RA   R   R   Rr   R   Rk   R   R   R   R   R   R   R   R   R   R   R   R   R  R  R  R  R  R  R  R  R	  R  R  R  R  R   R  R  R  R  R  R  R  R   R   R  R  R  R  R   R"  R   R4  R   R   R	   R   R   R   R   R   R   (    (   R   R   (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s   			
																
																																	 		   						 																				  			   					 		t	   TextPhasec           B` sw   e  Z e   Z d    Z d   Z d   Z d   Z d   Z e	 j
 g   Z e e _ e	 j
 d e f g  Z e e _ RS(   c         S` s   |  j  j | d  d  S(   Nu   data(   R6   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk     s    c         S` sM   |  j  j d i |  j j d j d 6 |  j j j   |  j  j |  j  _ t S(   Nu&   expected-named-closing-tag-but-got-eofiu   name(	   RB   Rf   R6   Re   R8   R   R   RU   RZ   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr     s
    c         S` s   t  s t d | d   d  S(   Nu4   Tried to process start tag %s in RCDATA/RAWTEXT modeu   name(   RL   Rs   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` s=   |  j  j j   } | j d k s' t  |  j j |  j _ d  S(   Nu   script(   R6   Re   R   R8   Rs   RB   R   RU   (   R:   R{   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagScript  s    c         S` s&   |  j  j j   |  j j |  j _ d  S(   N(   R6   Re   R   RB   R   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    u   script(   R3   R4   R   R   Rk   Rr   R   R6  R   R	   R   R   R   R   (    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR5    s   							t   InTablePhasec           ` sR  e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z e j d   j f d e	 f d e
 f d e f d" e f d# e f d e f d$ e f d e f d  e f g
  Z e e _ e j d e f d% e f g  Z e e _ RS(&   c         S` s4   x- |  j  j d j d k r/ |  j  j j   q Wd  S(   Niu   tableu   html(   u   tableu   html(   R6   Re   R8   R   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   clearStackToTableContext  s    c         S` sB   |  j  j d j d k r, |  j j d  n |  j j s> t  d  S(   Niu   htmlu   eof-in-table(   R6   Re   R8   RB   Rf   RJ   Rs   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr     s    c         S` sH   |  j  j } |  j  j d |  j  _ | |  j  j _ |  j  j j |  d  S(   Nu   inTableText(   RB   RU   R?   R   Rl   (   R:   R{   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRl     s    c         S` sH   |  j  j } |  j  j d |  j  _ | |  j  j _ |  j  j j |  d  S(   Nu   inTableText(   RB   RU   R?   R   Rk   (   R:   R{   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk     s    c         S` s3   t  |  j _ |  j j d j |  t |  j _ d  S(   Nu   inBody(   RZ   R6   t   insertFromTableRB   R?   Rk   RL   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` sG   |  j    |  j j j t  |  j j |  |  j j d |  j _ d  S(   Nu	   inCaption(	   R8  R6   R   Rq   R   R   RB   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagCaption  s    
c         S` s4   |  j    |  j j |  |  j j d |  j _ d  S(   Nu   inColumnGroup(   R8  R6   R   RB   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagColgroup  s    
c         S` s   |  j  t d d   | S(   Nu   colgroupu   StartTag(   R;  R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagCol  s    c         S` s4   |  j    |  j j |  |  j j d |  j _ d  S(   Nu   inTableBody(   R8  R6   R   RB   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagRowGroup  s    
c         S` s   |  j  t d d   | S(   Nu   tbodyu   StartTag(   R=  R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagImplyTbody  s    c         S` sN   |  j  j d i d d 6d d 6 |  j  j j t d   |  j  j sJ | Sd  S(   Nu$   unexpected-start-tag-implies-end-tagu   tableu	   startNameu   endName(   RB   Rf   RU   Rn   R   RJ   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR    s
    c         S` s   |  j  j d j |  S(   Nu   inHead(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagStyleScript  s    c         S` sq   d | d k r` | d d j  t  d k r` |  j j d  |  j j |  |  j j j   n |  j |  d  S(   Nu   typeu   datau   hiddenu    unexpected-hidden-input-in-table(	   Ra   R   RB   Rf   R6   R   Re   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR    s    c         S` s_   |  j  j d  |  j j d  k r[ |  j j |  |  j j d |  j _ |  j j j   n  d  S(   Nu   unexpected-form-in-tablei(   RB   Rf   R6   R   R<   R   Re   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s
    c         S` sQ   |  j  j d i | d d 6 t |  j _ |  j  j d j |  t |  j _ d  S(   Nu)   unexpected-start-tag-implies-table-voodoou   nameu   inBody(   RB   Rf   RZ   R6   R9  R?   Rm   RL   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` s   |  j  j d d d r |  j  j   |  j  j d j d k ro |  j j d i d d 6|  j  j d j d 6 n  x- |  j  j d j d k r |  j  j j   qr W|  j  j j   |  j j   n |  j j	 s t
  |  j j   d  S(   Nu   tableR   iu   end-tag-too-early-namedu   gotNameu   expectedName(   R6   R   R  Re   R8   RB   Rf   R   RW   RJ   Rs   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagTable  s    
c         S` s"   |  j  j d i | d d 6 d  S(   Nu   unexpected-end-tagu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagIgnore  s    c         S` sQ   |  j  j d i | d d 6 t |  j _ |  j  j d j |  t |  j _ d  S(   Nu'   unexpected-end-tag-implies-table-voodoou   nameu   inBody(   RB   Rf   RZ   R6   R9  R?   Rn   RL   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    u   htmlu   captionu   colgroupu   colu   tbodyu   tfootu   theadu   tdu   thu   tru   tableu   styleu   scriptu   inputu   formu   body(   u   tbodyu   tfootu   thead(   u   tdu   thu   tr(   u   styleu   script(   u   bodyu   captionu   colu   colgroupu   htmlu   tbodyu   tdu   tfootu   thu   theadu   tr(   R3   R4   R   R   R8  Rr   Rl   Rk   R   R:  R;  R<  R=  R>  R  R?  R  R   R   R@  RA  R   R	   R   R   R   R   R   (    (   R   (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR7    sH   															
															 t   InTableTextPhasec           ` s\   e  Z d
 Z   f d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d	   Z
 RS(   u   originalPhaseu   characterTokensc         ` s/   t    |   j | |   d  |  _ g  |  _ d  S(   N(   R   RA   R<   R   t   characterTokens(   R:   R   R    (   RB  (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRA   6  s    	c         S` s   d j  g  |  j D] } | d ^ q  } t g  | D] } | t k ^ q3  r i t d d 6| d 6} |  j j d j |  n | r |  j j |  n  g  |  _ d  S(   Nu    u   datau
   Charactersu   typeu   inTable(	   t   joinRC  R   R
   R   RB   R?   R   R6   (   R:   R!  R   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   flushCharacters;  s    )%c         S` s   |  j    |  j |  j _ | S(   N(   RE  R   RB   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRo   D  s    
c         S` s   |  j    |  j |  j _ t S(   N(   RE  R   RB   RU   RZ   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr   I  s    
c         S` s(   | d d k r d  S|  j  j |  d  S(   Nu   datau    (   RC  Rq   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk   N  s    c         S` s   |  j  j |  d  S(   N(   RC  Rq   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRl   S  s    c         S` s   |  j    |  j |  j _ | S(   N(   RE  R   RB   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRm   X  s    
c         S` s   |  j    |  j |  j _ | S(   N(   RE  R   RB   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRn   ]  s    
(   u   originalPhaseu   characterTokens(   R3   R4   R   RA   RE  Ro   Rr   Rk   Rl   Rm   Rn   (    (   RB  (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRB  3  s   							t   InCaptionPhasec           ` s   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z e j d	   j f d e f g  Z e e _ e j d
 e	 f d e
 f d e f g  Z e e _ RS(   c         S` s   |  j  j d d d S(   Nu   captionR   u   table(   R6   R   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   ignoreEndTagCaptionf  s    c         S` s   |  j  j d j   d  S(   Nu   inBody(   RB   R?   Rr   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr   i  s    c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rk   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk   l  s    c         S` s@   |  j  j   |  j   } |  j  j j t d   | s< | Sd  S(   Nu   caption(   RB   Rf   RG  RU   Rn   R   (   R:   R{   t   ignoreEndTag(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagTableElemento  s
    c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   w  s    c         S` s   |  j    s |  j j   |  j j d j d k rc |  j j d i d d 6|  j j d j d 6 n  x- |  j j d j d k r |  j j j   qf W|  j j j   |  j j   |  j j	 d |  j _
 n |  j j s t  |  j j   d  S(   Niu   captionu$   expected-one-end-tag-but-got-anotheru   gotNameu   expectedNameu   inTable(   RG  R6   R  Re   R8   RB   Rf   R   R3  R?   RU   RJ   Rs   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagCaptionz  s    
c         S` s@   |  j  j   |  j   } |  j  j j t d   | s< | Sd  S(   Nu   caption(   RB   Rf   RG  RU   Rn   R   (   R:   R{   RH  (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR@    s
    c         S` s"   |  j  j d i | d d 6 d  S(   Nu   unexpected-end-tagu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRA    s    c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rn   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    u   htmlu   captionu   colu   colgroupu   tbodyu   tdu   tfootu   thu   theadu   tru   tableu   body(	   u   captionu   colu   colgroupu   tbodyu   tdu   tfootu   thu   theadu   tr(
   u   bodyu   colu   colgroupu   htmlu   tbodyu   tdu   tfootu   thu   theadu   tr(   R3   R4   R   R   RG  Rr   Rk   RI  R   RJ  R@  RA  R   R	   R   R   R   R   R   (    (   R   (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRF  b  s*   										 			 t   InColumnGroupPhasec           ` s   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z e j d   j f d	 e f g  Z e e _ e j d
 e	 f d	 e
 f g  Z e e _ RS(   c         S` s   |  j  j d j d k S(   Niu   html(   R6   Re   R8   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   ignoreEndTagColgroup  s    c         S` s\   |  j  j d j d k r/ |  j j s+ t  d  S|  j   } |  j t d   | sX t	 Sd  S(   Niu   htmlu   colgroup(
   R6   Re   R8   RB   RJ   Rs   RL  t   endTagColgroupR   RZ   (   R:   RH  (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr     s    c         S` s-   |  j    } |  j t d   | s) | Sd  S(   Nu   colgroup(   RL  RM  R   (   R:   R{   RH  (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk     s    c         S` s.   |  j  j |  |  j  j j   t | d <d  S(   Nu   selfClosingAcknowledged(   R6   R   Re   R   RZ   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR<    s    c         S` s-   |  j    } |  j t d   | s) | Sd  S(   Nu   colgroup(   RL  RM  R   (   R:   R{   RH  (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` sX   |  j    r. |  j j s t  |  j j   n& |  j j j   |  j j d |  j _	 d  S(   Nu   inTable(
   RL  RB   RJ   Rs   Rf   R6   Re   R   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRM    s
    c         S` s   |  j  j d i d d 6 d  S(   Nu
   no-end-tagu   colu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt	   endTagCol  s    c         S` s-   |  j    } |  j t d   | s) | Sd  S(   Nu   colgroup(   RL  RM  R   (   R:   R{   RH  (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    u   htmlu   colu   colgroup(   R3   R4   R   R   RL  Rr   Rk   R<  R   RM  RN  R   R	   R   R   R   R   R   (    (   R   (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRK    s"   			
									t   InTableBodyPhasec           ` s   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z d   Z e j d   j f d e f d e	 f d e
 f g  Z e e _ e j d e f d e f d e f g  Z e e _ RS(   c         S` sb   x- |  j  j d j d k r/ |  j  j j   q W|  j  j d j d k r^ |  j j s^ t  n  d  S(   Niu   tbodyu   tfootu   theadu   html(   u   tbodyu   tfootu   theadu   html(   R6   Re   R8   R   RB   RJ   Rs   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   clearStackToTableBodyContext  s
    	c         S` s   |  j  j d j   d  S(   Nu   inTable(   RB   R?   Rr   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr     s    c         S` s   |  j  j d j |  S(   Nu   inTable(   RB   R?   Rl   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRl     s    c         S` s   |  j  j d j |  S(   Nu   inTable(   RB   R?   Rk   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk     s    c         S` s4   |  j    |  j j |  |  j j d |  j _ d  S(   Nu   inRow(   RP  R6   R   RB   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt
   startTagTr   s    
c         S` s8   |  j  j d i | d d 6 |  j t d d   | S(   Nu   unexpected-cell-in-table-bodyu   nameu   tru   StartTag(   RB   Rf   RQ  R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagTableCell  s    c         S` s   |  j  j d d d sH |  j  j d d d sH |  j  j d d d rv |  j   |  j t |  j  j d j   | S|  j j s t	  |  j j
   d  S(   Nu   tbodyR   u   tableu   theadu   tfooti(   R6   R   RP  t   endTagTableRowGroupR   Re   R8   RB   RJ   Rs   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagTableOther  s    
c         S` s   |  j  j d j |  S(   Nu   inTable(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` sq   |  j  j | d d d rO |  j   |  j  j j   |  j j d |  j _ n |  j j d i | d d 6 d  S(   Nu   nameR   u   tableu   inTableu    unexpected-end-tag-in-table-body(	   R6   R   RP  Re   R   RB   R?   RU   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRS    s    
c         S` s   |  j  j d d d sH |  j  j d d d sH |  j  j d d d rv |  j   |  j t |  j  j d j   | S|  j j s t	  |  j j
   d  S(   Nu   tbodyR   u   tableu   theadu   tfooti(   R6   R   RP  RS  R   Re   R8   RB   RJ   Rs   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR@  %  s    
c         S` s"   |  j  j d i | d d 6 d  S(   Nu    unexpected-end-tag-in-table-bodyu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRA  2  s    c         S` s   |  j  j d j |  S(   Nu   inTable(   RB   R?   Rn   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   6  s    u   htmlu   tru   tdu   thu   captionu   colu   colgroupu   tbodyu   tfootu   theadu   tableu   body(   u   tdu   th(   u   captionu   colu   colgroupu   tbodyu   tfootu   thead(   u   tbodyu   tfootu   thead(   u   bodyu   captionu   colu   colgroupu   htmlu   tdu   thu   tr(   R3   R4   R   R   RP  Rr   Rl   Rk   RQ  RR  RT  R   RS  R@  RA  R   R	   R   R   R   R   R   (    (   R   (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRO    s4   		
																	 t
   InRowPhasec           ` s   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z d   Z d   Z e j d   j f d e	 f d e
 f g  Z e e _ e j d e f d e f d e f d e f g  Z e e _ RS(   c         S` s[   xT |  j  j d j d k rV |  j j d i |  j  j d j d 6 |  j  j j   q Wd  S(   Niu   tru   htmlu'   unexpected-implied-end-tag-in-table-rowu   name(   u   tru   html(   R6   Re   R8   RB   Rf   R   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   clearStackToTableRowContextO  s    c         S` s   |  j  j d d d S(   Nu   trR   u   table(   R6   R   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   ignoreEndTagTrU  s    c         S` s   |  j  j d j   d  S(   Nu   inTable(   RB   R?   Rr   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr   Y  s    c         S` s   |  j  j d j |  S(   Nu   inTable(   RB   R?   Rl   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRl   \  s    c         S` s   |  j  j d j |  S(   Nu   inTable(   RB   R?   Rk   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk   _  s    c         S` sG   |  j    |  j j |  |  j j d |  j _ |  j j j t  d  S(   Nu   inCell(	   RV  R6   R   RB   R?   RU   R   Rq   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRR  b  s    
c         S` s-   |  j    } |  j t d   | s) | Sd  S(   Nu   tr(   RW  t   endTagTrR   (   R:   R{   RH  (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRT  h  s    c         S` s   |  j  j d j |  S(   Nu   inTable(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   o  s    c         S` sb   |  j    s? |  j   |  j j j   |  j j d |  j _ n |  j j sQ t	  |  j j
   d  S(   Nu   inTableBody(   RW  RV  R6   Re   R   RB   R?   RU   RJ   Rs   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRX  r  s    
c         S` s-   |  j    } |  j t d   | s) | Sd  S(   Nu   tr(   RW  RX  R   (   R:   R{   RH  (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR@  |  s    c         S` sD   |  j  j | d d d r3 |  j t d   | S|  j j   d  S(   Nu   nameR   u   tableu   tr(   R6   R   RX  R   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRS    s    c         S` s"   |  j  j d i | d d 6 d  S(   Nu   unexpected-end-tag-in-table-rowu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRA    s    c         S` s   |  j  j d j |  S(   Nu   inTable(   RB   R?   Rn   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    u   htmlu   tdu   thu   captionu   colu   colgroupu   tbodyu   tfootu   theadu   tru   tableu   body(   u   tdu   th(   u   captionu   colu   colgroupu   tbodyu   tfootu   theadu   tr(   u   tbodyu   tfootu   thead(   u   bodyu   captionu   colu   colgroupu   htmlu   tdu   th(   R3   R4   R   R   RV  RW  Rr   Rl   Rk   RR  RT  R   RX  R@  RS  RA  R   R	   R   R   R   R   R   (    (   R   (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRU  J  s6   										
					 				t   InCellPhasec           ` s   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z e j d	   j f d e f g  Z e e _ e j d e	 f d e
 f d e f g  Z e e _ RS(   c         S` s`   |  j  j d d d r. |  j t d   n. |  j  j d d d r\ |  j t d   n  d  S(   Nu   tdR   u   tableu   th(   R6   R   t   endTagTableCellR   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt	   closeCell  s    c         S` s   |  j  j d j   d  S(   Nu   inBody(   RB   R?   Rr   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr     s    c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rk   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk     s    c         S` sa   |  j  j d d d s0 |  j  j d d d r> |  j   | S|  j j sP t  |  j j   d  S(   Nu   tdR   u   tableu   th(   R6   R   R[  RB   RJ   Rs   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRT    s    
c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    c         S` s   |  j  j | d d d r |  j  j | d  |  j  j d j | d k r |  j j d i | d d 6 xF t r |  j  j j   } | j | d k rn Pqn qn Wn |  j  j j   |  j  j	   |  j j
 d |  j _ n |  j j d i | d d 6 d  S(   Nu   nameR   u   tableiu   unexpected-cell-end-tagu   inRowu   unexpected-end-tag(   R6   R   R  Re   R8   RB   Rf   RZ   R   R3  R?   RU   (   R:   R{   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRZ    s    	c         S` s"   |  j  j d i | d d 6 d  S(   Nu   unexpected-end-tagu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRA    s    c         S` s;   |  j  j | d d d r* |  j   | S|  j j   d  S(   Nu   nameR   u   table(   R6   R   R[  RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagImply  s    
c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rn   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR     s    u   htmlu   captionu   colu   colgroupu   tbodyu   tdu   tfootu   thu   theadu   tru   bodyu   table(	   u   captionu   colu   colgroupu   tbodyu   tdu   tfootu   thu   theadu   tr(   u   tdu   th(   u   bodyu   captionu   colu   colgroupu   html(   u   tableu   tbodyu   tfootu   theadu   tr(   R3   R4   R   R   R[  Rr   Rk   RT  R   RZ  RA  R\  R   R	   R   R   R   R   R   (    (   R   (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRY    s(   					
					 			t   InSelectPhasec           ` s  e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z d   Z d	   Z d
   Z d   Z e j d   j f d e f d e f d e f d e	 f d e
 f g  Z e e _ e j d e f d e f d e f g  Z e e _ RS(   c         S` sB   |  j  j d j d k r, |  j j d  n |  j j s> t  d  S(   Niu   htmlu   eof-in-select(   R6   Re   R8   RB   Rf   RJ   Rs   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr     s    c         S` s,   | d d k r d  S|  j  j | d  d  S(   Nu   datau    (   R6   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk     s    c         S` s@   |  j  j d j d k r, |  j  j j   n  |  j  j |  d  S(   Niu   option(   R6   Re   R8   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagOption  s    c         S` sl   |  j  j d j d k r, |  j  j j   n  |  j  j d j d k rX |  j  j j   n  |  j  j |  d  S(   Niu   optionu   optgroup(   R6   Re   R8   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagOptgroup	  s
    c         S` s'   |  j  j d  |  j t d   d  S(   Nu   unexpected-select-in-selectu   select(   RB   Rf   t   endTagSelectR   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR  	  s    c         S` sU   |  j  j d  |  j j d d d r? |  j t d   | S|  j  j sQ t  d  S(   Nu   unexpected-input-in-selectu   selectR   (   RB   Rf   R6   R   R`  R   RJ   Rs   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR  	  s
    c         S` s   |  j  j d j |  S(   Nu   inHead(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   	  s    c         S` s"   |  j  j d i | d d 6 d  S(   Nu   unexpected-start-tag-in-selectu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   	  s    c         S` sJ   |  j  j d j d k r, |  j  j j   n |  j j d i d d 6 d  S(   Niu   optionu   unexpected-end-tag-in-selectu   name(   R6   Re   R8   R   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagOption	  s    c         S` s   |  j  j d j d k rE |  j  j d j d k rE |  j  j j   n  |  j  j d j d k rq |  j  j j   n |  j j d i d d 6 d  S(   Niu   optioniu   optgroupu   unexpected-end-tag-in-selectu   name(   R6   Re   R8   R   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagOptgroup%	  s    c         S` s   |  j  j d d d rb |  j  j j   } x% | j d k rQ |  j  j j   } q- W|  j j   n |  j j st t  |  j j	   d  S(   Nu   selectR   (
   R6   R   Re   R   R8   RB   RW   RJ   Rs   Rf   (   R:   R{   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR`  2	  s    c         S` s"   |  j  j d i | d d 6 d  S(   Nu   unexpected-end-tag-in-selectu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   =	  s    u   htmlu   optionu   optgroupu   selectu   inputu   keygenu   textareau   script(   u   inputu   keygenu   textarea(   R3   R4   R   R   Rr   Rk   R^  R_  R  R  R   R   Ra  Rb  R`  R   R	   R   R   R   R   R   (    (   R   (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR]    s4   																				t   InSelectInTablePhasec        	   B` s   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 e
 j d e f g  Z e e _ e
 j d e f g  Z e	 e _ RS(   c         S` s   |  j  j d j   d  S(   Nu   inSelect(   RB   R?   Rr   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr   U	  s    c         S` s   |  j  j d j |  S(   Nu   inSelect(   RB   R?   Rk   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk   X	  s    c         S` s5   |  j  j d i | d d 6 |  j t d   | S(   Nu5   unexpected-table-element-start-tag-in-select-in-tableu   nameu   select(   RB   Rf   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR  [	  s    c         S` s   |  j  j d j |  S(   Nu   inSelect(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   `	  s    c         S` sU   |  j  j d i | d d 6 |  j j | d d d rQ |  j t d   | Sd  S(   Nu3   unexpected-table-element-end-tag-in-select-in-tableu   nameR   u   tableu   select(   RB   Rf   R6   R   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR@  c	  s    c         S` s   |  j  j d j |  S(   Nu   inSelect(   RB   R?   Rn   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   i	  s    u   captionu   tableu   tbodyu   tfootu   theadu   tru   tdu   th(   u   captionu   tableu   tbodyu   tfootu   theadu   tru   tdu   th(   u   captionu   tableu   tbodyu   tfootu   theadu   tru   tdu   th(   R3   R4   R   R   Rr   Rk   R  R   R@  R   R	   R   R   R   R   (    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRc  R	  s   								t   InForeignContentPhasec        -   ` s   e  Z e   Z e d  d d d d d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& d' d( d) d* d+ g,  Z d,   Z   f d-   Z d.   Z d/   Z	 RS(0   u   bu   bigu
   blockquoteu   bodyu   bru   centeru   codeu   ddu   divu   dlu   dtu   emu   embedu   h1u   h2u   h3u   h4u   h5u   h6u   headu   hru   iu   imgu   liu   listingu   menuu   metau   nobru   olu   pu   preu   rubyu   su   smallu   spanu   strongu   strikeu   subu   supu   tableu   ttu   uu   ulu   varc         S` s+  i$ d d 6d d 6d d 6d d 6d	 d
 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d  6d! d" 6d# d$ 6d% d& 6d' d( 6d) d* 6d+ d, 6d- d. 6d/ d0 6d1 d2 6d3 d4 6d5 d6 6d7 d8 6d9 d: 6d; d< 6d= d> 6d? d@ 6dA dB 6dC dD 6dE dF 6dG dH 6} | dI | k r'| | dI | dI <n  d  S(J   Nu   altGlyphu   altglyphu   altGlyphDefu   altglyphdefu   altGlyphItemu   altglyphitemu   animateColoru   animatecoloru   animateMotionu   animatemotionu   animateTransformu   animatetransformu   clipPathu   clippathu   feBlendu   feblendu   feColorMatrixu   fecolormatrixu   feComponentTransferu   fecomponenttransferu   feCompositeu   fecompositeu   feConvolveMatrixu   feconvolvematrixu   feDiffuseLightingu   fediffuselightingu   feDisplacementMapu   fedisplacementmapu   feDistantLightu   fedistantlightu   feFloodu   fefloodu   feFuncAu   fefuncau   feFuncBu   fefuncbu   feFuncGu   fefuncgu   feFuncRu   fefuncru   feGaussianBluru   fegaussianbluru   feImageu   feimageu   feMergeu   femergeu   feMergeNodeu   femergenodeu   feMorphologyu   femorphologyu   feOffsetu   feoffsetu   fePointLightu   fepointlightu   feSpecularLightingu   fespecularlightingu   feSpotLightu   fespotlightu   feTileu   fetileu   feTurbulenceu   feturbulenceu   foreignObjectu   foreignobjectu   glyphRefu   glyphrefu   linearGradientu   lineargradientu   radialGradientu   radialgradientu   textPathu   textpathu   name(    (   R:   R{   t   replacements(    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   adjustSVGTagNames	  sL    

c         ` sf   | d d k r d | d <n5 |  j  j rR t d   | d D  rR t |  j  _ n    j |  |  d  S(   Nu   datau    u   �c         s` s   |  ] } | t  k Vq d  S(   N(   R
   (   R7   R   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pys	   <genexpr>	  s    (   RB   R[   R   RL   Rk   (   R:   R{   (   R   (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk   	  s    c         S` s  |  j  j d } | d |  j k sV | d d k r t | d j    d d d h @r |  j j d i | d d 6 xm |  j  j d j |  j  j k r |  j j	 |  j  j d  r |  j j
 |  j  j d  r |  j  j j   qw W| S| j t d	 k r|  j j |  n3 | j t d
 k rA|  j |  |  j j |  n  |  j j |  | j | d <|  j  j |  | d r|  j  j j   t | d <n  d  S(   Niu   nameu   fontu   datau   coloru   faceu   sizeu*   unexpected-html-element-in-foreign-contentu   mathmlu   svgu	   namespaceu   selfClosingu   selfClosingAcknowledged(   R6   Re   t   breakoutElementst   sett   keysRB   Rf   R_   Ri   Rc   Rd   R   R   R   Rf  R   R   R   RZ   (   R:   R{   R~   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRm   	  s.    #
c         S` sZ  t  |  j j  d } |  j j d } | j j t  | d k rc |  j j d i | d d 6 n  x t rU| j j t  | d k r|  j j	 |  j j
 d k r |  j j	 j   |  j j	 j |  j _	 n  x. |  j j j   | k r |  j j s t  q Wd  } Pn  | d 8} |  j j | } | j |  j j k r<qf qf |  j j	 j |  } Pqf W| S(   Ni   iu   nameu   unexpected-end-tagu   inTableText(   Rh   R6   Re   R8   Ra   R   RB   Rf   RZ   RU   R?   RE  R   R   Rs   R<   R_   Ri   Rn   (   R:   R{   t	   nodeIndexR   R}   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRn   	  s(    !	
(
   R3   R4   R   R   Rj   Rg  Rf  Rk   Rm   Rn   (    (   R   (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRd  x	  s   		)	t   AfterBodyPhasec           B` s   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 e j d e f g  Z e e _ e j d e	 f g  Z e
 e _ RS(   c         S` s   d  S(   N(    (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr   	  s    c         S` s!   |  j  j | |  j  j d  d  S(   Ni    (   R6   R   Re   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRo   	  s    c         S` s*   |  j  j d  |  j  j d |  j  _ | S(   Nu   unexpected-char-after-bodyu   inBody(   RB   Rf   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk   	  s    c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   	  s    c         S` s8   |  j  j d i | d d 6 |  j  j d |  j  _ | S(   Nu   unexpected-start-tag-after-bodyu   nameu   inBody(   RB   Rf   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   	  s    c         S` s9   |  j  j r |  j  j d  n |  j  j d |  j  _ d  S(   Nu'   unexpected-end-tag-after-body-innerhtmlu   afterAfterBody(   RB   RJ   Rf   R?   RU   (   R:   R8   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR  
  s    c         S` s8   |  j  j d i | d d 6 |  j  j d |  j  _ | S(   Nu   unexpected-end-tag-after-bodyu   nameu   inBody(   RB   Rf   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   

  s    u   html(   R3   R4   R   R   Rr   Ro   Rk   R   R   R  R   R	   R   R   R   R   (    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk  	  s   									t   InFramesetPhasec           ` s   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z e j d   j f d	 e f d
 e f d e f g  Z e	 e _ e j d	 e
 f g  Z e e _ RS(   c         S` sB   |  j  j d j d k r, |  j j d  n |  j j s> t  d  S(   Niu   htmlu   eof-in-frameset(   R6   Re   R8   RB   Rf   RJ   Rs   (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr   
  s    c         S` s   |  j  j d  d  S(   Nu   unexpected-char-in-frameset(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk   "
  s    c         S` s   |  j  j |  d  S(   N(   R6   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   %
  s    c         S` s$   |  j  j |  |  j  j j   d  S(   N(   R6   R   Re   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagFrame(
  s    c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagNoframes,
  s    c         S` s"   |  j  j d i | d d 6 d  S(   Nu    unexpected-start-tag-in-framesetu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   /
  s    c         S` s   |  j  j d j d k r, |  j j d  n |  j  j j   |  j j r{ |  j  j d j d k r{ |  j j d |  j _ n  d  S(   Niu   htmlu)   unexpected-frameset-in-frameset-innerhtmlu   framesetu   afterFrameset(	   R6   Re   R8   RB   Rf   R   RJ   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   endTagFrameset3
  s    c         S` s"   |  j  j d i | d d 6 d  S(   Nu   unexpected-end-tag-in-framesetu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   ?
  s    u   htmlu   framesetu   frameu   noframes(   R3   R4   R   R   Rr   Rk   R   Rm  Rn  R   Ro  R   R	   R   R   R   R   R   (    (   R   (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRl  
  s$   												t   AfterFramesetPhasec           ` s   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 e
 j d   j f d e f g  Z e e _ e
 j d e f g  Z e	 e _ RS(   c         S` s   d  S(   N(    (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr   T
  s    c         S` s   |  j  j d  d  S(   Nu   unexpected-char-after-frameset(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk   X
  s    c         S` s   |  j  j d j |  S(   Nu   inHead(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRn  [
  s    c         S` s"   |  j  j d i | d d 6 d  S(   Nu#   unexpected-start-tag-after-framesetu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   ^
  s    c         S` s   |  j  j d |  j  _ d  S(   Nu   afterAfterFrameset(   RB   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR  b
  s    c         S` s"   |  j  j d i | d d 6 d  S(   Nu!   unexpected-end-tag-after-framesetu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   e
  s    u   htmlu   noframes(   R3   R4   R   R   Rr   Rk   Rn  R   R  R   R	   R   R   R   R   R   (    (   R   (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRp  P
  s   								t   AfterAfterBodyPhasec           B` sq   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 e j d e f g  Z e	 e _ RS(   c         S` s   d  S(   N(    (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr   w
  s    c         S` s   |  j  j | |  j  j  d  S(   N(   R6   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRo   z
  s    c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rl   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRl   }
  s    c         S` s*   |  j  j d  |  j  j d |  j  _ | S(   Nu   expected-eof-but-got-charu   inBody(   RB   Rf   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk   
  s    c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   
  s    c         S` s8   |  j  j d i | d d 6 |  j  j d |  j  _ | S(   Nu   expected-eof-but-got-start-tagu   nameu   inBody(   RB   Rf   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   
  s    c         S` s8   |  j  j d i | d d 6 |  j  j d |  j  _ | S(   Nu   expected-eof-but-got-end-tagu   nameu   inBody(   RB   Rf   R?   RU   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRn   
  s    u   html(   R3   R4   R   R   Rr   Ro   Rl   Rk   R   R   Rn   R	   R   R   R   (    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRq  t
  s   								t   AfterAfterFramesetPhasec           B` s   e  Z e   Z d    Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d   Z e j d e f d	 e	 f g  Z e
 e _ RS(
   c         S` s   d  S(   N(    (   R:   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr   
  s    c         S` s   |  j  j | |  j  j  d  S(   N(   R6   R   R   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRo   
  s    c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rl   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRl   
  s    c         S` s   |  j  j d  d  S(   Nu   expected-eof-but-got-char(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRk   
  s    c         S` s   |  j  j d j |  S(   Nu   inBody(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   
  s    c         S` s   |  j  j d j |  S(   Nu   inHead(   RB   R?   Rm   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   startTagNoFrames
  s    c         S` s"   |  j  j d i | d d 6 d  S(   Nu   expected-eof-but-got-start-tagu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   
  s    c         S` s"   |  j  j d i | d d 6 d  S(   Nu   expected-eof-but-got-end-tagu   name(   RB   Rf   (   R:   R{   (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRn   
  s    u   htmlu   noframes(   R3   R4   R   R   Rr   Ro   Rl   Rk   R   Rs  R   Rn   R	   R   R   R   (    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyRr  
  s   										u   initialu
   beforeHtmlu
   beforeHeadu   inHeadu   inHeadNoscriptu	   afterHeadu   inBodyu   textu   inTableu   inTableTextu	   inCaptionu   inColumnGroupu   inTableBodyu   inRowu   inCellu   inSelectu   inSelectInTableu   inForeignContentu	   afterBodyu
   inFramesetu   afterFramesetu   afterAfterBodyu   afterAfterFrameset(   R   (   R@   RN   R   R   R   R   R   R   R   R5  R7  RF  RK  RO  RU  RY  R]  Rc  Rd  Rk  Rl  Rp  Rq  Rr  (    (   R   RB  R   s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR>     sh    		%H%-f?B  !/F@bYLc&r.8$%%c         ` s[   t  |  d  t     @} | rW t |  d    f d   |  d j   D  |  d <n  d  S(   Nu   datac         3` s-   |  ]# \ } }   j  | |  | f Vq d  S(   N(   Rg   (   R7   t   kt   v(   Re  (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pys	   <genexpr>
  s   (   R   R*   R&   (   R{   Re  t   needs_adjustment(    (   Re  s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   
  s    u   EndTagc         C` s9   | d  k r i  } n  i t | d 6|  d 6| d 6| d 6S(   Nu   typeu   nameu   datau   selfClosing(   R<   R   (   R8   R*   R`   R
  (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   
  s    	R   c           B` s   e  Z d  Z RS(   u   Error in parsed document(   R3   R4   R   (    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyR   
  s   (/   t
   __future__R    R   R   t   pip._vendor.sixR   R   R(   t    R   R   R   t   treebuilders.baseR   R	   t	   constantsR
   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   RZ   R   R$   R5   t   objectR   t   memoizeR>   R   R<   RL   R   t	   ExceptionR   (    (    (    s=   /tmp/pip-build-UPPWic/pip/pip/_vendor/html5lib/html5parser.pyt   <module>   s6   j	 7         W	