403Webshell
Server IP : 35.80.110.71  /  Your IP : 216.73.216.221
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/lib/python3/dist-packages/html5lib/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3/dist-packages/html5lib/__pycache__/html5parser.cpython-312.pyc
�

V=�^����,�ddlmZmZmZddlmZmZddlZddlm	Z	ddlm
Z
ddlmZddlm
Z
dd	lmZdd
lmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z dd�Z!dd�Z"d
�Z#Gd�de$�Z%ejLd��Z'd�Z(		dd�Z)Gd�de*�Z+y)�)�absolute_import�division�unicode_literals)�with_metaclass�viewkeysN�)�_inputstream)�
_tokenizer)�treebuilders)�Marker)�_utils)�spaceCharacters�asciiUpper2Lower�specialElements�headingElements�
cdataElements�rcdataElements�
tokenTypes�
tagTokenTypes�
namespaces�htmlIntegrationPointElements�"mathmlTextIntegrationPointElements�adjustForeignAttributes�adjustMathMLAttributes�adjustSVGAttributes�E�_ReparseExceptionc�l�tj|�}t||��}|j|fi|��S)a�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>

    ��namespaceHTMLElements)r�getTreeBuilder�
HTMLParser�parse)�doc�treebuilderr �kwargs�tb�ps      �6/usr/lib/python3/dist-packages/html5lib/html5parser.pyr#r#s7��$
�	$�	$�[�	1�B��2�-B�C�A��1�7�7�3�!�&�!�!�c�p�tj|�}t||��}|j|fd|i|��S)a#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�	container)rr!r"�
parseFragment)r$r,r%r r&r'r(s       r)r-r-1s<��(
�	$�	$�[�	1�B��2�-B�C�A��1�?�?�3�>�)�>�v�>�>r*c�*��G�fd�dt�}|S)Nc���eZdZ�fd�Zy)�-method_decorator_metaclass.<locals>.Decoratedc���|j�D],\}}t|tj�r�|�}|||<�.tj||||�S�N)�items�
isinstance�types�FunctionType�type�__new__)�meta�	classname�bases�	classDict�
attributeName�	attribute�functions      �r)r8z5method_decorator_metaclass.<locals>.Decorated.__new__LsY���,5�O�O�,=�
5�(�
�y��i��);�);�<� (�� 3�I�+4�	�-�(�	
5�
�<�<��i��	�B�Br*N)�__name__�
__module__�__qualname__r8)r?s�r)�	Decoratedr0Ks	���	Cr*rC)r7)r?rCs` r)�method_decorator_metaclassrDJs���C�D�C��r*c��eZdZdZdd�Zdd�Zd�Zed��Zd�Z	d�Z
d	�Zd
�Zd�Z
dd�Zd
�Zd�Zd�Zd�Zd�Zd�Zy)r"z]HTML parser

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

    Nc	��||_|�tjd�}||�|_g|_t|�j
�D��cic]\}}||||j���c}}|_ycc}}w)a�
        :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

        N�etree)�strictrr!�tree�errors�	getPhasesr3�phases)�selfrIrHr �debug�name�clss       r)�__init__zHTMLParser.__init__]ss��*����<��.�.�w�7�D��.�/��	����!��'�-�-�/�1�i�d�C�t�S��t�y�y�1�1�1����1s�A7c��||_||_||_tj|fd|i|��|_|j
�	|j�y#t$r#|j
�|j�YywxYw)N�parser)	�
innerHTMLModer,�	scriptingr
�
HTMLTokenizer�	tokenizer�reset�mainLoopr)rM�stream�	innerHTMLr,rUr&s      r)�_parsezHTMLParser._parse|sl��&���"���"���#�1�1�&�P��P��P����
�
��	��M�M�O�� �	��J�J�L��M�M�O�	�s�A�)B�Bc���|jj�d|_g|_g|_d|_|j�r|jj�|_	|jtvr&|jj|j_
nn|jtvr&|jj|j_
n6|jdk(r&|jj |j_
n	|j"d|_|j$j'�|j)�nd|_	|j"d|_d|_d|_d|_y)NFz	no quirks�	plaintext�
beforeHtml�initialT)rIrX�
firstStartTagrJ�log�
compatModerTr,�lowerr[rrW�rcdataState�stater�rawtextState�plaintextStaterL�phase�insertHtmlElement�resetInsertionMode�	lastPhase�beforeRCDataPhase�
framesetOK�rMs r)rXzHTMLParser.reset�s���	�	����"���������%������!�^�^�1�1�3�D�N��~�~��.�'+�~�~�'A�'A����$����>�1�'+�~�~�'B�'B����$����;�.�'+�~�~�'D�'D����$�����\�2�D�J��J�J�(�(�*��#�#�%�"�D�N����Y�/�D�J����!%�����r*c�v�t|d�sy|jjjdjS)z�Name of the character encoding that was used to decode the input stream, or
        :obj:`None` if that is not determined yet

        rWNr)�hasattrrWrZ�charEncodingrOros r)�documentEncodingzHTMLParser.documentEncoding�s2���t�[�)���~�~�$�$�1�1�!�4�9�9�9r*c���|jdk(rJ|jtdk(r4d|jvxr$|jdj	t
�dvS|j|jftvS)N�annotation-xml�mathml�encoding)z	text/htmlzapplication/xhtml+xml)rO�	namespacer�
attributes�	translaterr�rM�elements  r)�isHTMLIntegrationPointz!HTMLParser.isHTMLIntegrationPoint�s{���L�L�,�,��!�!�Z��%9�9��'�"4�"4�4�;��&�&�z�2�<�<�(�*�:�;�
<�
�%�%�w�|�|�4�8T�T�Tr*c�>�|j|jftvSr2)rxrOrr{s  r)�isMathMLTextIntegrationPointz'HTMLParser.isMathMLTextIntegrationPoint�s���!�!�7�<�<�0�4V�V�Vr*c�L�td}td}td}td}td}td}td}|jD�]}d}	|}
|
���|
}	|jjr|jjdnd}|r|jnd}|r|j
nd}
|
d	}||k(r)|j
|
d
|
jdi��d}
�nDt|jj�dk(s}||jjk(sd|j|�r||k(r|d
tddg�vs<|||fvs6|tdk(r|
dk(r
||k(r|d
dk(s|j|�r||||fvr
|j}n|jd}||k(r|j!|
�}
nr||k(r|j#|
�}
n[||k(r|j%|
�}
nD||k(r|j'|
�}
n-||k(r|j)|
�}
n||k(r|j+|
�}
|
����|k(s���|	ds���|	dr���|j
dd
|	d
i���d}g}|rK|j-|j�|jj/�}|r|j|vsJ�|r�Jyy)N�
Characters�SpaceCharacters�StartTag�EndTag�Comment�Doctype�
ParseError���r7�data�datavarsrrO�mglyph�
malignmarkrvru�svg�inForeignContent�selfClosing�selfClosingAcknowledgedz&non-void-element-with-trailing-solidusT)rrWrI�openElementsrxrO�
parseError�get�len�defaultNamespacer�	frozensetrr}rirL�processCharacters�processSpaceCharacters�processStartTag�
processEndTag�processComment�processDoctype�append�
processEOF)rM�CharactersToken�SpaceCharactersToken�
StartTagToken�EndTagToken�CommentToken�DoctypeToken�ParseErrorToken�token�
prev_token�	new_token�currentNode�currentNodeNamespace�currentNodeNamer7ri�	reprocessrLs                  r)rYzHTMLParser.mainLoop�s���$�\�2��)�*;�<��"�:�.�
� ��*��!�)�,��!�)�,��$�\�2���^�^�/	>�E��J��I��'�&�
�<@�I�I�<R�<R�d�i�i�4�4�R�8�X\��@K�{�'<�'<�QU�$�6A�+�"2�"2�t�� ��(���?�*��O�O�I�f�$5�y�}�}�Z�QS�7T�U� $�I��D�I�I�2�2�3�q�8�,��	�	�0J�0J�J��:�:�;�G��=�0� ��=�	�8�\�:R�0S�S��?�4H�"I�I�-��H�1E�E�(�,<�<���.��v��%�/��4�4�[�A��-��BV�!W�W� $�
�
�� $���,>� ?����.�$)�$;�$;�I�$F�	��!5�5�$)�$@�$@��$K�	���.�$)�$9�$9�)�$D�	���,�$)�$7�$7�	�$B�	���-�$)�$8�$8��$C�	���-�$)�$8�$8��$C�	�O�'�R�
�%�*�]�*C�"�#<�=���� H�!'��F�);� <�>�]/	>�d�	�����M�M�$�*�*�%��
�
�-�-�/�I���z�z��/�/�/�	r*c�f�|j|ddg|��i|��|jj�S)a�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>

        FN)r\rI�getDocument�rMrZ�argsr&s    r)r#zHTMLParser.parses3��,	����F�E�4�9�$�9�&�9��y�y�$�$�&�&r*c�d�|j|dg|��i|��|jj�S)aZParse 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>

        T)r\rI�getFragmentr�s    r)r-zHTMLParser.parseFragments1��2	����F�D�2�4�2�6�2��y�y�$�$�&�&r*c���|�i}|jj|jjj	�||f�|j
rt
t||z��yr2)rJr�rWrZ�positionrHr�r)rM�	errorcoder�s   r)r�zHTMLParser.parseError;sY�����H������D�N�N�1�1�:�:�<�i��R�S��;�;��Q�y�\�H�4�5�5�r*c�$�t|t�yr2)�adjust_attributesr�rMr�s  r)rz!HTMLParser.adjustMathMLAttributesCs
���%�!7�8r*c�$�t|t�yr2)r�rr�s  r)rzHTMLParser.adjustSVGAttributesFs
���%�!4�5r*c�$�t|t�yr2)r��adjustForeignAttributesMapr�s  r)rz"HTMLParser.adjustForeignAttributesIs
���%�!;�<r*c�8�|jj�yr2)rSrir�s  r)�reparseTokenNormalzHTMLParser.reparseTokenNormalLs�������r*c���d}ddddddddddd	d	d
dd�}|jjddd
�D]�}|j}d}||jjdk(r|jsJ�d}|j}|dvr|jsJ�|s$|j|jj
k7r��||vr|j||}||_y|s��|jd	}||_y|_y)NF�inSelect�inCell�inRow�inTableBody�	inCaption�
inColumnGroup�inTable�inBody�
inFrameset�
beforeHead)�select�td�th�tr�tbody�thead�tfoot�caption�colgroup�table�head�body�frameset�htmlr�rT)r�r�r�r�)rIr�rOr[rxr�rLri)rM�last�newModes�node�nodeName�	new_phases      r)rkzHTMLParser.resetInsertionModePs���� ����"�"�"�"�'����$� �
�� �I�I�*�*�4�R�4�0�	�D��y�y�H��I��t�y�y�-�-�a�0�0��~�~�%�~����>�>���A�A��~�~�%�~��D�N�N�d�i�i�.H�.H�H���8�#� �K�K���(:�;�	��
��
�	� �K�K��1�	����
�-	�,��
r*c�0�|dvsJ�|jj|�|dk(r&|jj|j_n%|jj
|j_|j|_|jd|_y)N)�RAWTEXT�RCDATAr��text)	rI�
insertElementrWrgrfreri�
originalPhaserL)rMr��contentTypes   r)�parseRCDataRawtextzHTMLParser.parseRCDataRawtext|ss���3�3�3�3��	�	����&��)�#�#'�>�>�#>�#>�D�N�N� �#'�>�>�#=�#=�D�N�N� �!�Z�Z����[�[��(��
r*)NFTF)F�divF)zXXX-undefined-errorN)r@rArB�__doc__rQr\rX�propertyrsr}rrYr#r-r�rrrr�rkr��r*r)r"r"Vsl���1�>� �D�:��:�U�W�A0�F'�2'�86�9�6�=��*�X
)r*r"c
������d�}d�}Gd�dt|||����Gd�d��}Gd�d��}Gd	�d
��}Gd�d��}Gd
�d��}Gd�d��}G��fd�d���Gd�d��}	G�fd�d��}
G�fd�d���G�fd�d��}G�fd�d��}G�fd�d��}
G�fd�d ��}G�fd!�d"��}G�fd#�d$��}Gd%�d&��}G�fd'�d(��}Gd)�d*��}G�fd+�d,��}G�fd-�d.��}Gd/�d0��}Gd1�d2��}id3|�d4|�d5|�d6|�d7|�d8|�d9��d:|	�d;|
�d<��d=|�d>|�d?|
�d@|�dA|�dB|�dC|�||||||dD��S)ENc�r���tj�D��cic]\}}||��
c}}���fd�}|Scc}}w)z4Logger that records which phase processes each tokenc����jjd�r�t|�dkDr�|d}d�|di}|dtvr|d|d<|jj
j
|jjjj|jjjj|jj�j|f��|g|��i|��S�|g|��i|��S)N�processrr7rO)r@�
startswithr�rrSrbr�rWrfri�	__class__)rMr�r&r��infor?�
type_namess     ��r)�wrappedz'getPhases.<locals>.log.<locals>.wrapped�s����� � �+�+�I�6�3�t�9�q�=��Q����
�5��=� 9�:����=�M�1�#(��=�D��L������&�&����(=�(=�(C�(C�(L�(L�(,���(9�(9�(C�(C�(L�(L�(,���(?�(?�(0�(9�(9�(,�	(.�/�
 ��6�t�6�v�6�6���6�t�6�v�6�6r*)rr3)r?�key�valuer�r�s`   @r)rbzgetPhases.<locals>.log�s6���3=�3C�3C�3E�F�Z�S�%�e�S�j�F�
�	7����#Gs�
3c�(�|rt|�StSr2)rDr7)�
use_metaclass�metaclass_funcs  r)�getMetaclasszgetPhases.<locals>.getMetaclass�s���-�n�=�=��Kr*c�J�eZdZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
y)
�getPhases.<locals>.PhasezNBase class for helper object that implements each phase of processing
        )rSrI�__startTagCache�
__endTagCachec�<�||_||_i|_i|_yr2)rSrI�_Phase__startTagCache�_Phase__endTagCache)rMrSrIs   r)rQz!getPhases.<locals>.Phase.__init__�s �� �D�K��D�I�#%�D� �!#�D�r*c��t�r2)�NotImplementedErrorros r)r�z#getPhases.<locals>.Phase.processEOF�s��%�%r*c�j�|jj||jjd�y)Nr��rI�
insertCommentr�r�s  r)r�z'getPhases.<locals>.Phase.processComment�s'��
�I�I�#�#�E�4�9�9�+A�+A�"�+E�Fr*c�:�|jjd�y)Nzunexpected-doctype�rSr�r�s  r)r�z'getPhases.<locals>.Phase.processDoctype�s���K�K�"�"�#7�8r*c�@�|jj|d�y�Nr��rI�
insertTextr�s  r)r�z*getPhases.<locals>.Phase.processCharacters�����I�I� � ��v��/r*c�@�|jj|d�yrrr�s  r)r�z/getPhases.<locals>.Phase.processSpaceCharacters�r	r*c��|d}||jvr|j|}n�|j|x}|j|<t|j�t|j�dzkDrf|jjt	t|j���t|j�t|j�dzkDr�f||�S�NrOg�������?)r��startTagHandlerr��pop�next�iter�rMr�rO�funcs    r)r�z(getPhases.<locals>.Phase.processStartTag�s�����=�D��t�+�+�+��+�+�D�1��48�4H�4H��4N�N��t�+�+�D�1��$�.�.�/�#�d�6J�6J�2K�c�2Q�Q��(�(�,�,�T�$�t�7K�7K�2L�-M�N��$�.�.�/�#�d�6J�6J�2K�c�2Q�Q���;�r*c�f�|jjs#|ddk(r|jjd�|dj�D]Q\}}||jj
djvs�,||jj
dj|<�Sd|j_y)NrOr�z
non-html-rootr�rF)rSrar�r3rIr�ry�rMr��attrr�s    r)�startTagHtmlz%getPhases.<locals>.Phase.startTagHtml�s����;�;�,�,��v��&�1H����&�&��7� %�V�}�2�2�4�
G���e��t�y�y�5�5�a�8�C�C�C�AF�D�I�I�*�*�1�-�8�8��>�
G�).�D�K�K�%r*c��|d}||jvr|j|}n�|j|x}|j|<t|j�t|j�dzkDrf|jjt	t|j���t|j�t|j�dzkDr�f||�Sr)r��
endTagHandlerr�rrrrs    r)r�z&getPhases.<locals>.Phase.processEndTag�s�����=�D��t�)�)�)��)�)�$�/��26�2D�2D�T�2J�J��t�)�)�$�/��$�,�,�-��D�4F�4F�0G�#�0M�M��&�&�*�*�4��T�5G�5G�0H�+I�J��$�,�,�-��D�4F�4F�0G�#�0M�M���;�r*N)r@rArBr��	__slots__rQr�r�r�r�r�r�rr�r�r*r)�Phaser��s:��	�J�	�	$�	&�	G�
	9�	0�	0�	�"	.�	r*rc�J�eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zy	)
�getPhases.<locals>.InitialPhasec��yr2r�r�s  r)r�z6getPhases.<locals>.InitialPhase.processSpaceCharacters����r*c�d�|jj||jj�yr2�rIr�documentr�s  r)r�z.getPhases.<locals>.InitialPhase.processComment�� ���I�I�#�#�E�4�9�9�+=�+=�>r*c�\�|d}|d}|d}|d}|dk7s	|�|� |dk7r|jjd�|�d}|jj|�|dk7r|j	t
�}|rE|ddk7s=|j
d	�s,|d
vs(|j
d�r|�|r%|j�dk(rd
|j_n5|j
d�s|j
d�r|�d|j_|jjd|j_
y)NrO�publicId�systemId�correctr�zabout:legacy-compatzunknown-doctype�)7z*+//silmaril//dtd html pro v0r11 19970101//z4-//advasoft ltd//dtd html 3.0 aswedit + extensions//z*-//as//dtd html 3.0 aswedit + extensions//z-//ietf//dtd html 2.0 level 1//z-//ietf//dtd html 2.0 level 2//z&-//ietf//dtd html 2.0 strict level 1//z&-//ietf//dtd html 2.0 strict level 2//z-//ietf//dtd html 2.0 strict//z-//ietf//dtd html 2.0//z-//ietf//dtd html 2.1e//z-//ietf//dtd html 3.0//z-//ietf//dtd html 3.2 final//z-//ietf//dtd html 3.2//z-//ietf//dtd html 3//z-//ietf//dtd html level 0//z-//ietf//dtd html level 1//z-//ietf//dtd html level 2//z-//ietf//dtd html level 3//z"-//ietf//dtd html strict level 0//z"-//ietf//dtd html strict level 1//z"-//ietf//dtd html strict level 2//z"-//ietf//dtd html strict level 3//z-//ietf//dtd html strict//z-//ietf//dtd html//z(-//metrius//dtd metrius presentational//z5-//microsoft//dtd internet explorer 2.0 html strict//z.-//microsoft//dtd internet explorer 2.0 html//z0-//microsoft//dtd internet explorer 2.0 tables//z5-//microsoft//dtd internet explorer 3.0 html strict//z.-//microsoft//dtd internet explorer 3.0 html//z0-//microsoft//dtd internet explorer 3.0 tables//z#-//netscape comm. corp.//dtd html//z*-//netscape comm. corp.//dtd strict html//z*-//o'reilly and associates//dtd html 2.0//z3-//o'reilly and associates//dtd html extended 1.0//z;-//o'reilly and associates//dtd html extended relaxed 1.0//zN-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//zE-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//z$-//spyglass//dtd html 2.0 extended//z+-//sq//dtd html 2.0 hotmetal + extensions//z--//sun microsystems corp.//dtd hotjava html//z4-//sun microsystems corp.//dtd hotjava strict html//z-//w3c//dtd html 3 1995-03-24//z-//w3c//dtd html 3.2 draft//z-//w3c//dtd html 3.2 final//z-//w3c//dtd html 3.2//z-//w3c//dtd html 3.2s draft//z-//w3c//dtd html 4.0 frameset//z#-//w3c//dtd html 4.0 transitional//z(-//w3c//dtd html experimental 19960712//z&-//w3c//dtd html experimental 970421//z-//w3c//dtd w3 html//z-//w3o//dtd w3 html 3.0//z#-//webtechs//dtd mozilla html 2.0//z-//webtechs//dtd mozilla html//)z$-//w3o//dtd w3 html strict 3.0//en//z"-/w3c/dtd html 4.0 transitional/enr�)z -//w3c//dtd html 4.01 frameset//z$-//w3c//dtd html 4.01 transitional//z:http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd�quirks)z -//w3c//dtd xhtml 1.0 frameset//z$-//w3c//dtd xhtml 1.0 transitional//zlimited quirksr_)rSr�rI�
insertDoctyperzrr�rdrcrLri)rMr�rOr$r%r&s      r)r�z.getPhases.<locals>.InitialPhase.processDoctype�sQ����=�D��Z�(�H��Z�(�H��I�&�G����(�"6��(�X�9N�-N����&�&�'8�9������I�I�#�#�E�*��2�~�#�-�-�.>�?���u�V�}��6��'�'�6<�7=�p�!)�)��'�'�A�B��$�����!1�5q�!q�)1����&��%�%�=�>��%�%�?�@��&�)9����&� $��� 2� 2�<� @�D�K�K�r*c�v�d|j_|jjd|j_y)Nr(r_)rSrcrLriros r)�anythingElsez,getPhases.<locals>.InitialPhase.anythingElseZs)��%-�D�K�K�"� $��� 2� 2�<� @�D�K�K�r*c�\�|jjd�|j�|S)Nzexpected-doctype-but-got-chars�rSr�r+r�s  r)r�z1getPhases.<locals>.InitialPhase.processCharacters^s&���K�K�"�"�#C�D������Lr*c�h�|jjdd|di�|j�|S)Nz"expected-doctype-but-got-start-tagrOr-r�s  r)r�z/getPhases.<locals>.InitialPhase.processStartTagcs4���K�K�"�"�#G�$*�E�&�M�#:�
<������Lr*c�h�|jjdd|di�|j�|S)Nz expected-doctype-but-got-end-tagrOr-r�s  r)r�z-getPhases.<locals>.InitialPhase.processEndTagis4���K�K�"�"�#E�$*�E�&�M�#:�
<������Lr*c�Z�|jjd�|j�y)Nzexpected-doctype-but-got-eofTr-ros r)r�z*getPhases.<locals>.InitialPhase.processEOFos$���K�K�"�"�#A�B�����r*N)
r@rArB�tuplerr�r�r�r+r�r�r�r�r�r*r)�InitialPhaser�s5���G�	�	�	?�]	A�~	A�	�
	�	�	r*r2c�D�eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zy)	�"getPhases.<locals>.BeforeHtmlPhasec��|jjtdd��|jjd|j_y)Nr�r�r�)rI�
insertRoot�impliedTagTokenrSrLriros r)rjz4getPhases.<locals>.BeforeHtmlPhase.insertHtmlElementxs6���I�I� � ����!D�E� $��� 2� 2�<� @�D�K�K�r*c�$�|j�y�NT�rjros r)r�z-getPhases.<locals>.BeforeHtmlPhase.processEOF}s���"�"�$�r*c�d�|jj||jj�yr2r r�s  r)r�z1getPhases.<locals>.BeforeHtmlPhase.processComment�r"r*c��yr2r�r�s  r)r�z9getPhases.<locals>.BeforeHtmlPhase.processSpaceCharacters�rr*c�&�|j�|Sr2r:r�s  r)r�z4getPhases.<locals>.BeforeHtmlPhase.processCharacters�s���"�"�$��Lr*c�X�|ddk(rd|j_|j�|S)NrOr�T)rSrarjr�s  r)r�z2getPhases.<locals>.BeforeHtmlPhase.processStartTag�s+���V�}��&�,0����)��"�"�$��Lr*c�x�|ddvr"|jjdd|di�y|j�|S)NrO�r�r�r��brzunexpected-end-tag-before-html)rSr�rjr�s  r)r�z0getPhases.<locals>.BeforeHtmlPhase.processEndTag�sD���V�}�$B�B����&�&�'G�(.��f�
�'>�@��&�&�(��r*N)r@rArBr1rrjr�r�r�r�r�r�r�r*r)�BeforeHtmlPhaser4ts-���G�	�	A�
	�	?�	�	�	�	r*rBc��eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Ze
jd	efd
e	fg�Ze
e_e
jdefg�Zee_y)
�"getPhases.<locals>.BeforeHeadPhasec�:�|jtdd��y)Nr�r�T��startTagHeadr7ros r)r�z-getPhases.<locals>.BeforeHeadPhase.processEOF�s�����o�f�j�A�B�r*c��yr2r�r�s  r)r�z9getPhases.<locals>.BeforeHeadPhase.processSpaceCharacters�rr*c�<�|jtdd��|S�Nr�r�rFr�s  r)r�z4getPhases.<locals>.BeforeHeadPhase.processCharacters�������o�f�j�A�B��Lr*c�R�|jjdj|�S�Nr��rSrLr�r�s  r)rz/getPhases.<locals>.BeforeHeadPhase.startTagHtml��"���;�;�%�%�h�/�?�?��F�Fr*c���|jj|�|jjd|j_|jj
d|j_y)Nr��inHead)rIr�r��headPointerrSrLrir�s  r)rGz/getPhases.<locals>.BeforeHeadPhase.startTagHead�sJ���I�I�#�#�E�*�$(�I�I�$:�$:�2�$>�D�I�I�!� $��� 2� 2�8� <�D�K�K�r*c�<�|jtdd��|SrJrFr�s  r)�
startTagOtherz0getPhases.<locals>.BeforeHeadPhase.startTagOther�rKr*c�<�|jtdd��|SrJrFr�s  r)�endTagImplyHeadz2getPhases.<locals>.BeforeHeadPhase.endTagImplyHead�rKr*c�F�|jjdd|di�y)Nzend-tag-after-implied-rootrOrr�s  r)�endTagOtherz.getPhases.<locals>.BeforeHeadPhase.endTagOther�s#���K�K�"�"�#?�$*�E�&�M�#:�
<r*r�r�r@N)r@rArBr1rr�r�r�rrGrTrVrXr
�MethodDispatcherr
�defaultrr�r*r)�BeforeHeadPhaserD�s����G�	�	�	�	�	G�	=�
	�	�	<�2�&�1�1�
�\�"�
�\�"�3
���#0���/��/�/�
+�_�=�1
��
�!,�
�r*r[c��eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zej*defdefdefde
fdefde	fde
fdefg�Zee_ej*defdefg�Zee_y)�getPhases.<locals>.InHeadPhasec�$�|j�yr9�r+ros r)r�z)getPhases.<locals>.InHeadPhase.processEOF��������r*c�&�|j�|Sr2r_r�s  r)r�z0getPhases.<locals>.InHeadPhase.processCharacters���������Lr*c�R�|jjdj|�SrMrNr�s  r)rz+getPhases.<locals>.InHeadPhase.startTagHtml�rOr*c�:�|jjd�y)Nz!two-heads-are-not-better-than-onerr�s  r)rGz+getPhases.<locals>.InHeadPhase.startTagHead�s���K�K�"�"�#F�Gr*c��|jj|�|jjj�d|d<y�NTr��rIr�r�rr�s  r)�startTagBaseLinkCommandz6getPhases.<locals>.InHeadPhase.startTagBaseLinkCommand��5���I�I�#�#�E�*��I�I�"�"�&�&�(�/3�E�+�,r*c��|jj|�|jjj�d|d<|d}|jj
jjddk(r�d|vr3|jj
jj|d�yd|vr�d|vr�|dj�d	k(r|tj|djd
��}tj|�}|j�}|jj
jj|�yyyyy)NTr�r�r�	tentative�charset�contentz
http-equivzcontent-typezutf-8)rIr�r�rrSrWrZrr�changeEncodingrdr	�
EncodingBytes�encode�ContentAttrParserr#)rMr�ryr�rS�codecs      r)�startTagMetaz+getPhases.<locals>.InHeadPhase.startTagMeta�s$���I�I�#�#�E�*��I�I�"�"�&�&�(�/3�E�+�,��v��J��{�{�$�$�+�+�8�8��;�{�J��
�*��K�K�)�)�0�0�?�?�
�9�@U�V��:�-�"�j�0� ��.�4�4�6�.�H�
(�5�5�j��6K�6R�6R�SZ�6[�\�D�)�;�;�D�A�F�"�L�L�N�E��K�K�)�)�0�0�?�?��F�I�1�.�Kr*c�<�|jj|d�y)Nr��rSr�r�s  r)�
startTagTitlez,getPhases.<locals>.InHeadPhase.startTagTitle�s���K�K�*�*�5�(�;r*c�<�|jj|d�y)Nr�rur�s  r)�startTagNoFramesStylez4getPhases.<locals>.InHeadPhase.startTagNoFramesStyle�����K�K�*�*�5�)�<r*c���|jjr|jj|d�y|jj	|�|jj
d|j_y)Nr��inHeadNoscript)rSrUr�rIr�rLrir�s  r)�startTagNoscriptz/getPhases.<locals>.InHeadPhase.startTagNoscript�sQ���{�{�$�$����.�.�u�i�@��	�	�'�'��.�$(�K�K�$6�$6�7G�$H����!r*c�F�|jj|�|jjj|jj_|jj|j_|jjd|j_y)Nr�)	rIr�rSrW�scriptDataStaterfrir�rLr�s  r)�startTagScriptz-getPhases.<locals>.InHeadPhase.startTagScriptsg���I�I�#�#�E�*�*.�+�+�*?�*?�*O�*O�D�K�K�!�!�'�(,���(9�(9�D�K�K�%� $��� 2� 2�6� :�D�K�K�r*c�&�|j�|Sr2r_r�s  r)rTz,getPhases.<locals>.InHeadPhase.startTagOtherrbr*c��|jjjj�}|jdk(sJd|jz��|jj
d|j_y)Nr�zExpected head got %s�	afterHead�rSrIr�rrOrLri�rMr�r�s   r)�
endTagHeadz)getPhases.<locals>.InHeadPhase.endTagHead
s\���;�;�#�#�0�0�4�4�6�D��9�9��&�J�(>����(J�J�&� $��� 2� 2�;� ?�D�K�K�r*c�&�|j�|Sr2r_r�s  r)�endTagHtmlBodyBrz/getPhases.<locals>.InHeadPhase.endTagHtmlBodyBrrbr*c�F�|jjdd|di�y�N�unexpected-end-tagrOrr�s  r)rXz*getPhases.<locals>.InHeadPhase.endTagOther� ���K�K�"�"�#7�&�%��-�9P�Qr*c�8�|jtd��y)Nr�)r�r7ros r)r+z+getPhases.<locals>.InHeadPhase.anythingElses���O�O�O�F�3�4r*r��title)�noframes�style�noscript�script)�base�basefont�bgsound�command�linkr9r�)rAr�r�N)r@rArBr1rr�r�rrGrhrsrvrxr|rrTr�r�rXr+r
rYr
rZrr�r*r)�InHeadPhaser]�s����G�	�	�	�	G�	H�	4�
	G�*	<�	=�	I�	;�	�	@�
	�	R�	5�2�&�1�1�
�\�"�
�m�$�
"�$9�:�
�)�*�
�~�&�
?�
$�
&�
�\�"�
�\�"�
3
�
��#0���/��/�/�
�Z� �
#�%5�6�1
��
�!,�
�r*r�c���eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zej$d
e	fde
fdefg�Zee_ej$de
fdefg�Zee_y)�&getPhases.<locals>.InHeadNoscriptPhasec�Z�|jjd�|j�y)Nzeof-in-head-noscriptTr-ros r)r�z1getPhases.<locals>.InHeadNoscriptPhase.processEOF/s$���K�K�"�"�#9�:�����r*c�R�|jjdj|�S�NrQ)rSrLr�r�s  r)r�z5getPhases.<locals>.InHeadNoscriptPhase.processComment4s"���;�;�%�%�h�/�>�>�u�E�Er*c�\�|jjd�|j�|S)Nzchar-in-head-noscriptr-r�s  r)r�z8getPhases.<locals>.InHeadNoscriptPhase.processCharacters7s&���K�K�"�"�#:�;������Lr*c�R�|jjdj|�Sr��rSrLr�r�s  r)r�z=getPhases.<locals>.InHeadNoscriptPhase.processSpaceCharacters<�"���;�;�%�%�h�/�F�F�u�M�Mr*c�R�|jjdj|�SrMrNr�s  r)rz3getPhases.<locals>.InHeadNoscriptPhase.startTagHtml?rOr*c�R�|jjdj|�Sr�rNr�s  r)rhz>getPhases.<locals>.InHeadNoscriptPhase.startTagBaseLinkCommandBrOr*c�F�|jjdd|di�y�N�unexpected-start-tagrOrr�s  r)�startTagHeadNoscriptz;getPhases.<locals>.InHeadNoscriptPhase.startTagHeadNoscriptE� ���K�K�"�"�#9�F�E�&�M�;R�Sr*c�h�|jjdd|di�|j�|S�Nzunexpected-inhead-noscript-tagrOr-r�s  r)rTz4getPhases.<locals>.InHeadNoscriptPhase.startTagOtherH�2���K�K�"�"�#C�f�e�TZ�m�E\�]������Lr*c��|jjjj�}|jdk(sJd|jz��|jj
d|j_y)Nr�zExpected noscript got %srQr�r�s   r)�endTagNoscriptz5getPhases.<locals>.InHeadNoscriptPhase.endTagNoscriptMs\���;�;�#�#�0�0�4�4�6�D��9�9�
�*�R�,F����,R�R�*� $��� 2� 2�8� <�D�K�K�r*c�h�|jjdd|di�|j�|Sr�r-r�s  r)�endTagBrz/getPhases.<locals>.InHeadNoscriptPhase.endTagBrRr�r*c�F�|jjdd|di�yr�rr�s  r)rXz2getPhases.<locals>.InHeadNoscriptPhase.endTagOtherWr�r*c�8�|jtd��y)Nr�)r�r7ros r)r+z3getPhases.<locals>.InHeadNoscriptPhase.anythingElseZs������
� ;�<r*r�)r�r�r�r9r�r�)r�r�r�rAN)r@rArBr1rr�r�r�r�rrhr�rTr�r�rXr+r
rYr
rZrr�r*r)�InHeadNoscriptPhaser�,s����G�	�	�
	F�	�
	N�	G�	G�	T�	�
	=�
	�
	R�	=�2�&�1�1�
�\�"�
I�Kb�c�
!�#7�8�3
���
#0���/��/�/�
��(�
�8��1
��
�!,�
�r*r�c���eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zej"defd
efde	fde
fdefg�Zee_ej"de
fg�Zee_y)�!getPhases.<locals>.AfterHeadPhasec�$�|j�yr9r_ros r)r�z,getPhases.<locals>.AfterHeadPhase.processEOFnr`r*c�&�|j�|Sr2r_r�s  r)r�z3getPhases.<locals>.AfterHeadPhase.processCharactersrrbr*c�R�|jjdj|�SrMrNr�s  r)rz.getPhases.<locals>.AfterHeadPhase.startTagHtmlvrOr*c��d|j_|jj|�|jjd|j_y)NFr�)rSrnrIr�rLrir�s  r)�startTagBodyz.getPhases.<locals>.AfterHeadPhase.startTagBodyys;��%*�D�K�K�"��I�I�#�#�E�*� $��� 2� 2�8� <�D�K�K�r*c��|jj|�|jjd|j_y)Nr�)rIr�rSrLrir�s  r)�startTagFramesetz2getPhases.<locals>.AfterHeadPhase.startTagFrameset~s/���I�I�#�#�E�*� $��� 2� 2�<� @�D�K�K�r*c��|jjdd|di�|jjj	|jj
�|jjdj|�|jjddd�D]8}|jdk(s�|jjj|�yy)Nz#unexpected-start-tag-out-of-my-headrOrQr�r�)
rSr�rIr�r�rRrLr�rO�remover�s   r)�startTagFromHeadz2getPhases.<locals>.AfterHeadPhase.startTagFromHead�s����K�K�"�"�#H�$*�E�&�M�#:�
<��I�I�"�"�)�)�$�)�)�*?�*?�@��K�K���x�(�8�8��?��	�	�.�.�t��t�4�
���9�9��&��I�I�*�*�1�1�$�7��
r*c�F�|jjdd|di�yr�rr�s  r)rGz.getPhases.<locals>.AfterHeadPhase.startTagHead�r�r*c�&�|j�|Sr2r_r�s  r)rTz/getPhases.<locals>.AfterHeadPhase.startTagOther�rbr*c�&�|j�|Sr2r_r�s  r)r�z2getPhases.<locals>.AfterHeadPhase.endTagHtmlBodyBr�rbr*c�F�|jjdd|di�yr�rr�s  r)rXz-getPhases.<locals>.AfterHeadPhase.endTagOther�r�r*c��|jjtdd��|jjd|j_d|j_y)Nr�r�r�T)rIr�r7rSrLrirnros r)r+z.getPhases.<locals>.AfterHeadPhase.anythingElse�sB���I�I�#�#�O�F�J�$G�H� $��� 2� 2�8� <�D�K�K��%)�D�K�K�"r*r�r�r�)	r�r�r�r�r9r�r�r�r�r�)r�r�rAN)r@rArBr1rr�r�rr�r�r�rGrTr�rXr+r
rYr
rZrr�r*r)�AfterHeadPhaser�ks����G�	�	�	�	G�	=�
	A�	�	T�	�	�	R�	*�
2�&�1�1�
�\�"�
�\�"�
�)�*� �
�
��\�"�3
���#0���/��/�/�2H�2B�2D�1E�F�
� +�
�r*r�c
����eZdZdZ��fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�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.�Z0d/�Z1d0�Z2d1�Z3d2�Z4d3�Z5d4�Z6e7jpgd5W�jrf�d6ef�d7ef�d8e
f�d9ef�e:ef�d:ef�d;ef�d<ef�d=ef�d>ef�d?ef�d@ef�dAef�dBef�dCef�dDef�dEef�dFef�dGef�dHef�dIef�dJe f�dKe!f�dLe"f�dMe#f�dNe$f�dOe&f�dPe'f�dQe%f�dRe(f�dSe)f�dTe*f��Z;e+e;_<e7jpd7e-fd5e.fdUe/fd;e0fdVe,fdWe1fe:e2fdXe3fdBe4fdYe5fg
�Z=e6e=_<�xZ>S)Z�getPhases.<locals>.InBodyPhase)r�c�F��t�|�|i|��|j|_yr2)�superrQ�processSpaceCharactersNonPrer�)rMr�r&�InBodyPhaser�s   ��r)rQz'getPhases.<locals>.InBodyPhase.__init__�s%����+�t�-�t�>�v�>�*.�*K�*K�D�'r*c��|j|jk(xr4|j|jk(xr|j|jk(Sr2)rOrxry)rM�node1�node2s   r)�isMatchingFormattingElementz:getPhases.<locals>.InBodyPhase.isMatchingFormattingElement�sE���J�J�%�*�*�,�9��O�O�u���6�9��$�$��(8�(8�8�
:r*c���|jj|�|jjd}g}|jjddd�D]0}|turn&|j||�s� |j
|��2t|�dksJ�t|�dk(r(|jjj|d�|jjj
|�y)Nr��)	rIr�r��activeFormattingElementsrr�r�r�r�)rMr�r|�matchingElementsr�s     r)�addFormattingElementz3getPhases.<locals>.InBodyPhase.addFormattingElement�s����I�I�#�#�E�*��i�i�,�,�R�0�G�!���	�	�:�:�4�R�4�@�
2���6�>���5�5�d�G�D�$�+�+�D�1�	
2��'�(�A�-�-�-��#�$��)��	�	�2�2�9�9�:J�2�:N�O��I�I�.�.�5�5�g�>r*c��td�}|jjddd�D]-}|j|vs�|jjd�yy)N)�dd�dt�lir(r�r�r�r�r�r�r�r�r�z expected-closing-tag-but-got-eof)r�rIr�rOrSr�)rM�allowed_elementsr�s   r)r�z)getPhases.<locals>.InBodyPhase.processEOF�sY��(�*2� 3���	�	�.�.�t��t�4�
���9�9�$4�4��K�K�*�*�+M�N��
r*c�d�|d}|j|_|jd�rQ|jjdj
dvr,|jjdj
�s|dd}|r6|jj�|jj|�yy)Nr��
r�)�pre�listing�textarear)	r�r�r�rIr�rO�
hasContent�#reconstructActiveFormattingElementsr)rMr�r�s   r)�!processSpaceCharactersDropNewlinez@getPhases.<locals>.InBodyPhase.processSpaceCharactersDropNewline�s�����=�D�*.�*K�*K�D�'�����%��	�	�&�&�r�*�/�/�3Q�Q��	�	�.�.�r�2�=�=�?��A�B�x����	�	�=�=�?��	�	�$�$�T�*�r*c�&�|ddk(ry|jj�|jj|d�|jjr5t|dD�cgc]
}|tv��c}�rd|j_yyycc}w)Nr��F)rIr�rrSrn�anyr)rMr��chars   r)r�z0getPhases.<locals>.InBodyPhase.processCharacters�s����V�}��(���I�I�9�9�;��I�I� � ��v��/����&�&��!&�v��0����0�0�1�).����&�1�'��0s�$Bc�t�|jj�|jj|d�yr)rIr�rr�s  r)r�z;getPhases.<locals>.InBodyPhase.processSpaceCharactersNonPre�s(���I�I�9�9�;��I�I� � ��v��/r*c�R�|jjdj|�Sr�rNr�s  r)�startTagProcessInHeadz4getPhases.<locals>.InBodyPhase.startTagProcessInHead�rOr*c���|jjdddi�t|jj�dk(s&|jjdj
dk7r|jjsJ�yd|j_|dj�D]Q\}}||jjdjvs�,||jjdj|<�Sy)Nr�rOr�rFr�)
rSr�r�rIr�rOr[rnr3ryrs    r)r�z+getPhases.<locals>.InBodyPhase.startTagBody�s����K�K�"�"�#9�F�F�;K�L��D�I�I�*�*�+�q�0��I�I�*�*�1�-�2�2�f�<��{�{�,�,�,�,�).����&�#(��=�#6�#6�#8�K�K�D�%��4�9�9�#9�#9�!�#<�#G�#G�G�EJ��	�	�.�.�q�1�<�<�T�B�Kr*c�p�|jjdddi�t|jj�dk(s&|jjdj
dk7r|jjsJ�y|jjsy|jjdjrI|jjdjj|jjd�|jjdj
dk7rK|jjj�|jjdj
dk7r�K|jj|�|jjd|j_
y)	Nr�rOr�rr�r�r�r�)rSr�r�rIr�rOr[rn�parent�removeChildrr�rLrir�s  r)r�z/getPhases.<locals>.InBodyPhase.startTagFramesets=���K�K�"�"�#9�F�J�;O�P��D�I�I�*�*�+�q�0�D�I�I�4J�4J�1�4M�4R�4R�V\�4\��{�{�,�,�,�,��[�[�+�+���9�9�)�)�!�,�3�3��I�I�*�*�1�-�4�4�@�@����AW�AW�XY�AZ�[��i�i�,�,�R�0�5�5��?��I�I�*�*�.�.�0��i�i�,�,�R�0�5�5��?��	�	�'�'��.�$(�K�K�$6�$6�|�$D����!r*c��|jjdd��r|jtd��|jj	|�y�Nr(�button��variant)rI�elementInScope�endTagPr7r�r�s  r)�startTagClosePz-getPhases.<locals>.InBodyPhase.startTagClosePs<���y�y�'�'��X�'�>����_�S�1�2��I�I�#�#�E�*r*c���|jjdd��r|jtd��|jj	|�d|j
_|j|_y)Nr(r�r�F)	rIr�r�r7r�rSrnr�r�r�s  r)�startTagPreListingz1getPhases.<locals>.InBodyPhase.startTagPreListingsV���y�y�'�'��X�'�>����_�S�1�2��I�I�#�#�E�*�%*�D�K�K�"�*.�*P�*P�D�'r*c�b�|jjr|jjdddi�y|jj	dd��r|jt
d��|jj|�|jjd|j_y)Nr�rO�formr(r�r�r�)	rI�formPointerrSr�r�r�r7r�r�r�s  r)�startTagFormz+getPhases.<locals>.InBodyPhase.startTagForms~���y�y�$�$����&�&�'=���?O�P��9�9�+�+�C��+�B��L�L���!5�6��	�	�'�'��.�(,�	�	�(>�(>�r�(B��	�	�%r*c�:�d|j_dgddgddgd�}||d}t|jj�D]n}|j
|vr;|jjjt|j
d��n%|jtvs�_|j
dvs�nn|jjd	d
��r/|jjjtd	d��|jj|�y)NFr�r�r�)r�r�r�rOr�)�addressr�r(r(r�r�)
rSrn�reversedrIr�rOrir�r7�	nameTuplerr�r�)rMr��stopNamesMap�	stopNamesr�s     r)�startTagListItemz/getPhases.<locals>.InBodyPhase.startTagListItem&s���%*�D�K�K�"�#'�&�#'��,�#'��,�0�L�%�U�6�]�3�I� ����!7�!7�8�
���9�9�	�)��K�K�%�%�3�3�'��	�	�8�<�>���N�N�o�5��	�	�)@�@��
��y�y�'�'��X�'�>����!�!�/�/�#�C��2�4�
�I�I�#�#�E�*r*c��|jjdd��r|jtd��|jj	|�|j
jj|j
j_yr�)	rIr�r�r7r�rSrWrhrfr�s  r)�startTagPlaintextz0getPhases.<locals>.InBodyPhase.startTagPlaintext<s^���y�y�'�'��X�'�>����_�S�1�2��I�I�#�#�E�*�*.�+�+�*?�*?�*N�*N�D�K�K�!�!�'r*c��|jjdd��r|jtd��|jjdj
tvrE|jjdd|di�|jjj�|jj|�y)Nr(r�r�r�r�rO)rIr�r�r7r�rOrrSr�rr�r�s  r)�startTagHeadingz.getPhases.<locals>.InBodyPhase.startTagHeadingBs����y�y�'�'��X�'�>����_�S�1�2��y�y�%�%�b�)�.�.�/�A����&�&�'=���f�
�?V�W��	�	�&�&�*�*�,��I�I�#�#�E�*r*c��|jjd�}|r�|jjdddd��|j	td��||jjvr%|jjj|�||jjvr%|jjj|�|jj�|j|�y)N�a�$unexpected-start-tag-implies-end-tag��	startName�endName)rI�!elementInActiveFormattingElementsrSr��endTagFormattingr7r�r�r�r�r�)rMr��afeAElements   r)�	startTagAz(getPhases.<locals>.InBodyPhase.startTagAJs����)�)�E�E�c�J�K�����&�&�'M�58�S�'I�K��%�%�o�c�&:�;��$�)�)�"8�"8�8��I�I�*�*�1�1�+�>��$�)�)�"D�"D�D��I�I�6�6�=�=�k�J��I�I�9�9�;��%�%�e�,r*c�Z�|jj�|j|�yr2)rIr�r�r�s  r)�startTagFormattingz1getPhases.<locals>.InBodyPhase.startTagFormattingWs ���I�I�9�9�;��%�%�e�,r*c�6�|jj�|jjd�rS|jj	dddd��|jt
d��|jj�|j|�y)N�nobrrr)rIr�r�rSr�r�r7r�r�s  r)�startTagNobrz+getPhases.<locals>.InBodyPhase.startTagNobr[ss���I�I�9�9�;��y�y�'�'��/����&�&�'M�5;��'O�Q��"�"�?�6�#:�;��	�	�=�=�?��%�%�e�,r*c�<�|jjd�r;|jjdddd��|j	td��|S|jj
�|jj|�d|j_y)Nr�rrF)	rIr�rSr�r�r7r�r�rnr�s  r)�startTagButtonz-getPhases.<locals>.InBodyPhase.startTagButtonesx���y�y�'�'��1����&�&�'M�5=�(�'S�U��"�"�?�8�#<�=����	�	�=�=�?��	�	�'�'��.�).����&r*c���|jj�|jj|�|jjj	t
�d|j_y�NF)rIr�r�r�r�rrSrnr�s  r)�startTagAppletMarqueeObjectz:getPhases.<locals>.InBodyPhase.startTagAppletMarqueeObjectpsH���I�I�9�9�;��I�I�#�#�E�*��I�I�.�.�5�5�f�=�%*�D�K�K�"r*c��|jjdd��r|jtd��|jj	�d|j
_|j
j|d�y)Nr(r�r�Fr�)rIr�r�r7r�rSrnr�r�s  r)�startTagXmpz*getPhases.<locals>.InBodyPhase.startTagXmpvsZ���y�y�'�'��X�'�>����_�S�1�2��I�I�9�9�;�%*�D�K�K�"��K�K�*�*�5�)�<r*c�L�|jjdk7r7|jjdd��r|j	td��|jj
|�d|j_|jjd|j_	y)Nr(r(r�r�Fr�)
rSrcrIr�r�r7r�rnrLrir�s  r)�
startTagTablez,getPhases.<locals>.InBodyPhase.startTagTable}sw���{�{�%�%��1��9�9�+�+�C��+�B��&�&��s�';�<��I�I�#�#�E�*�%*�D�K�K�"� $��� 2� 2�9� =�D�K�K�r*c���|jj�|jj|�|jjj	�d|d<d|j
_y)NTr�F)rIr�r�r�rrSrnr�s  r)�startTagVoidFormattingz5getPhases.<locals>.InBodyPhase.startTagVoidFormatting�sQ���I�I�9�9�;��I�I�#�#�E�*��I�I�"�"�&�&�(�/3�E�+�,�%*�D�K�K�"r*c���|jj}|j|�d|dvr1|ddjt�dk(r||j_yyy)Nr7r��hidden)rSrnrrzr)rMr�rns   r)�
startTagInputz,getPhases.<locals>.InBodyPhase.startTagInput�s_�����/�/�J��'�'��.��%��-�'��&�M�&�)�3�3�4D�E��Q�)3����&�R�(r*c��|jj|�|jjj�d|d<yrfrgr�s  r)�startTagParamSourcez2getPhases.<locals>.InBodyPhase.startTagParamSource�rir*c��|jjdd��r|jtd��|jj	|�|jj
j
�d|d<d|j_y)Nr(r�r�Tr�F)	rIr�r�r7r�r�rrSrnr�s  r)�
startTagHrz)getPhases.<locals>.InBodyPhase.startTagHr�si���y�y�'�'��X�'�>����_�S�1�2��I�I�#�#�E�*��I�I�"�"�&�&�(�/3�E�+�,�%*�D�K�K�"r*c	��|jjdddd��|jtdd|d|d���y)	Nzunexpected-start-tag-treated-as�image�img��originalName�newNamer�r�r��ryr�)rSr�r�r7r�s  r)�
startTagImagez,getPhases.<locals>.InBodyPhase.startTagImage�sJ���K�K�"�"�#D�4;��#N�
P�� � ���
�<A�&�M�=B�=�=Q�"S�
Tr*c	���|jjdddi�|jjryi}d|dvr|dd|d<|j	tdd|���|j	td	d��|j	td
d��d|dvr	|dd}nd}|j
td
|d��|dj�}d|vr|d=d|vr|d=d|d<|j	tdd||d���|jtd
��|j	td	d��|jtd��y)Nzdeprecated-tagrO�isindex�actionr�r�r�)ry�hr�label�promptz3This is a searchable index. Enter search keywords: r��r7r��inputr�r+)
rSr�rIr�r�r7r�r�copyr�)rMr��
form_attrsr2rys     r)�startTagIsIndexz.getPhases.<locals>.InBodyPhase.startTagIsIndex�sr���K�K�"�"�#3�f�i�5H�I��y�y�$�$���J��5��=�(�',�V�}�X�'>�
�8�$�� � ����<F�"H�
I�� � ���z�!B�C�� � ���*�!E�F��5��=�(��v��x�0��N���"�"�#�L�1�6�B�
D��v��+�+�-�J��:�%��x�(��:�%��x�(�!*�J�v��� � ���*�<F�=B�=�=Q�"S�
T�
����w�7�8�� � ���z�!B�C�����v�6�7r*c���|jj|�|jjj|jj_|j|_d|j_yr)	rIr�rSrWrerfr�r�rnr�s  r)�startTagTextareaz/getPhases.<locals>.InBodyPhase.startTagTextarea�sP���I�I�#�#�E�*�*.�+�+�*?�*?�*K�*K�D�K�K�!�!�'�*.�*P�*P�D�'�%*�D�K�K�"r*c�H�d|j_|j|�yr)rSrn�startTagRawtextr�s  r)�startTagIFramez-getPhases.<locals>.InBodyPhase.startTagIFrame�s��%*�D�K�K�"�� � ��'r*c�v�|jjr|j|�y|j|�yr2)rSrUr;rTr�s  r)r|z/getPhases.<locals>.InBodyPhase.startTagNoscript�s+���{�{�$�$��$�$�U�+��"�"�5�)r*c�<�|jj|d�y)z8iframe, noembed noframes, noscript(if scripting enabled)r�Nrur�s  r)r;z.getPhases.<locals>.InBodyPhase.startTagRawtext�ryr*c�*�|jjdjdk(r.|jjjt
d��|jj�|jjj|�y�Nr��option)	rIr�rOrSrir�r7r�r�r�s  r)�startTagOptz*getPhases.<locals>.InBodyPhase.startTagOpt�sd���y�y�%�%�b�)�.�.�(�:����!�!�/�/���0I�J��I�I�9�9�;��K�K���*�*�5�1r*c��|jj�|jj|�d|j_|jj
|jjd|jjd|jjd|jjd|jjd|jjdfvr)|jjd|j_y|jjd	|j_y)
NFr�r�r�r�r�r��inSelectInTabler�)rIr�r�rSrnrirLr�s  r)�startTagSelectz-getPhases.<locals>.InBodyPhase.startTagSelect�s����I�I�9�9�;��I�I�#�#�E�*�%*�D�K�K�"��{�{� � �T�[�[�%7�%7�	�%B�%)�[�[�%7�%7��%D�%)�[�[�%7�%7��%H�%)�[�[�%7�%7�
�%F�%)�[�[�%7�%7��%@�%)�[�[�%7�%7��%A�%C�C�%)�K�K�$6�$6�7H�$I����!�$(�K�K�$6�$6�z�$B����!r*c�$�|jjd�rZ|jj�|jjdjdk7r|j
j
�|jj|�y)N�rubyr�)rIr��generateImpliedEndTagsr�rOrSr�r�r�s  r)�startTagRpRtz+getPhases.<locals>.InBodyPhase.startTagRpRt�sc���y�y�'�'��/��	�	�0�0�2��9�9�)�)�"�-�2�2�f�<��K�K�*�*�,��I�I�#�#�E�*r*c�P�|jj�|jj|�|jj	|�t
d|d<|jj
|�|dr*|jjj�d|d<yy)Nrvrxr�Tr�)	rIr�rSrrrr�r�rr�s  r)�startTagMathz+getPhases.<locals>.InBodyPhase.startTagMath�s����I�I�9�9�;��K�K�.�.�u�5��K�K�/�/��6�!+�H�!5�E�+���I�I�#�#�E�*��]�#��	�	�&�&�*�*�,�37��/�0�$r*c�P�|jj�|jj|�|jj	|�t
d|d<|jj
|�|dr*|jjj�d|d<yy)Nr�rxr�Tr�)	rIr�rSrrrr�r�rr�s  r)�startTagSvgz*getPhases.<locals>.InBodyPhase.startTagSvgs����I�I�9�9�;��K�K�+�+�E�2��K�K�/�/��6�!+�E�!2�E�+���I�I�#�#�E�*��]�#��	�	�&�&�*�*�,�37��/�0�$r*c�F�|jjdd|di�y)a5 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"
            zunexpected-start-tag-ignoredrONrr�s  r)�startTagMisplacedz0getPhases.<locals>.InBodyPhase.startTagMisplaceds#��
�K�K�"�"�#A�F�E�RX�M�CZ�[r*c�n�|jj�|jj|�yr2)rIr�r�r�s  r)rTz,getPhases.<locals>.InBodyPhase.startTagOthers$���I�I�9�9�;��I�I�#�#�E�*r*c�v�|jjdd��sU|jtdd��|jjdddi�|j
tdd��y|jjd�|jjdjdk7r|jjdddi�|jjj�}|jdk7r5|jjj�}|jdk7r�4yy)	Nr(r�r�r�r�rOr�r�)rIr�r�r7rSr�r�rHr�rOrr�s   r)r�z&getPhases.<locals>.InBodyPhase.endTagPs����9�9�+�+�C��+�B��#�#�O�C��$D�E����&�&�';�f�c�]�K����_�S�(�;�<��	�	�0�0��5��9�9�)�)�"�-�2�2�c�9��K�K�*�*�+?�&�#��O��y�y�-�-�1�1�3���i�i�3�&��9�9�1�1�5�5�7�D��i�i�3�&r*c���|jjd�s|jj�y|jjdj
dk7r`|jjddD]D}|j
t
d�vs�|jjdd|j
d��n|jjd|j_y)Nr�r��)r�r�r��optgrouprAr(�rp�rtr�r�r�r�r�r�r�r��$expected-one-end-tag-but-got-another��gotName�expectedName�	afterBody)	rIr�rSr�r�rOr�rLrir�s   r)�
endTagBodyz)getPhases.<locals>.InBodyPhase.endTagBody)s����9�9�+�+�F�3����&�&�(�����'�'��+�0�0�F�:� �I�I�2�2�1�2�6�
�D��y�y�	�3;�)<�<����.�.�B�(.��	�	�J�L��
�!%��� 2� 2�;� ?�D�K�K�r*c�r�|jjd�r|jtd��|Sy)Nr�)rIr�r\r7r�s  r)�
endTagHtmlz)getPhases.<locals>.InBodyPhase.endTagHtml;s/���y�y�'�'��/������ 7�8���0r*c� �|ddk(r|j|_|jj|d�}|r|jj	�|jj
dj|dk7r!|jjdd|di�|ro|jj
j�}|j|dk7r8|jj
j�}|j|dk7r�7yyy)NrOr�r��end-tag-too-early)
r�r�rIr�rHr�rOrSr�r)rMr��inScoper�s    r)�endTagBlockz*getPhases.<locals>.InBodyPhase.endTagBlockAs����V�}��%�.2�.O�.O��+��i�i�.�.�u�V�}�=�G���	�	�0�0�2��y�y�%�%�b�)�.�.�%��-�?����&�&�':�V�U�6�]�<S�T���y�y�-�-�1�1�3���i�i�5��=�0��9�9�1�1�5�5�7�D��i�i�5��=�0�r*c��|jj}d|j_|�|jj|�s|jj	dddi�y|jj�|jjd|k7r|jj	dddi�|jjj|�y)Nr�rOr�r�zend-tag-too-early-ignored)rIr�r�rSr�rHr�r�r�s   r)�
endTagFormz)getPhases.<locals>.InBodyPhase.endTagFormOs����9�9�(�(�D�$(�D�I�I�!��|�4�9�9�#;�#;�D�#A����&�&�';�(.��'7�9��	�	�0�0�2��9�9�)�)�"�-��5��K�K�*�*�+F�,2�F�+;�=��	�	�&�&�-�-�d�3r*c�P�|ddk(rd}nd}|jj|d|��s"|jjdd|di�y|jj	|d��|jj
dj|dk7r!|jjdd|di�|jj
j�}|j|dk7r8|jj
j�}|j|dk7r�7yy)	NrOr��listr�r���excluder�r`)rIr�rSr�rHr�rOr)rMr�r�r�s    r)�endTagListItemz-getPhases.<locals>.InBodyPhase.endTagListItem\s���V�}��$� �����9�9�+�+�E�&�M�7�+�K����&�&�';�f�e�F�m�=T�U��	�	�0�0��v��0�G��9�9�)�)�"�-�2�2�e�F�m�C��K�K�*�*�+���v��/�1��y�y�-�-�1�1�3���i�i�5��=�0��9�9�1�1�5�5�7�D��i�i�5��=�0r*c�F�tD]9}|jj|�s�|jj�n|jjdj
|dk7r!|jjdd|di�tD]�}|jj|�s�|jjj�}|j
tvr7|jjj�}|j
tvr�7yy)Nr�rOr`)	rrIr�rHr�rOrSr�r)rMr��items   r)�
endTagHeadingz,getPhases.<locals>.InBodyPhase.endTagHeadingms���'�
���9�9�+�+�D�1��I�I�4�4�6��
��y�y�%�%�b�)�.�.�%��-�?����&�&�':�V�U�6�]�<S�T�'�
���9�9�+�+�D�1��9�9�1�1�5�5�7�D��)�)�?�:�#�y�y�5�5�9�9�;���)�)�?�:��
r*c�
�d}|dk�rs|dz
}|jj|d�}|r=||jjvr7|jj|j�s|j|�y||jjvrG|jjdd|di�|jjj|�y|jj|j�s"|jjdd|di�y||jjdk7r!|jjd	d|di�|jjj|�}d}|jj|dD]}|jtvs�|}n|�y|jjj�}||k7r*|jjj�}||k7r�*|jjj|�y|jj|dz
}|jjj|�}|x}	}
d}|jjj|
�}|d
k�r_|dz
}|dz}|jj|}
|
|jjvr&|jjj|
��g|
|k(rn�|	|k(r(|jjj|
�dz}|
j�}
|
|jj|jjj|
�<|
|jj|jjj|
�<|
}
|	jr|	jj!|	�|
j#|	�|
}	|d
kr��_|	jr|	jj!|	�|jt%d�vr0|jj'�\}}|j)|	|�n|j#|	�|j�}
|j+|
�|j#|
�|jjj|�|jjj-||
�|jjj|�|jjj-|jjj|�dz|
�|dkr��ryy)z)The much-feared adoption agency algorithmr�rrONzadoption-agency-1.2zadoption-agency-4.4r�zadoption-agency-1.3r��r�r�r�r�r�)rIr
r�r�rOrXrSr�r�r��indexr�rr�	cloneNoder�r��appendChildr��getTableMisnestedNodePosition�insertBefore�reparentChildren�insert)rMr��outerLoopCounter�formattingElement�afeIndex�
furthestBlockr|�commonAncestor�bookmark�lastNoder��innerLoopCounterrp�cloner�rts                r)rz/getPhases.<locals>.InBodyPhase.endTagFormatting|s��� !��#�Q�&�!�A�%� �%)�I�I�$O�$O��&�M�%#�!�)�&�$�)�)�*@�*@�@����1�1�2C�2H�2H�I��$�$�U�+��'�d�i�i�.D�.D�D��K�K�*�*�+@�6�5�QW�=�BY�Z��I�I�6�6�=�=�>O�P�����1�1�2C�2H�2H�I��K�K�*�*�+@�6�5�QW�=�BY�Z��)�D�I�I�,B�,B�2�,F�F����.�.�/D�v�u�U[�}�F]�^� �9�9�1�1�7�7�8I�J�� $�
�#�y�y�5�5�h�i�@��G��(�(�O�;�(/�
���!�(�"�i�i�4�4�8�8�:�G�!�%6�6�"&�)�)�"8�"8�"<�"<�">��"�%6�6��I�I�6�6�=�=�g�F��"&���!7�!7��1��!E�� �9�9�=�=�C�C�DU�V��#0�/��4�#$� ��	�	�.�.�4�4�T�:��&��*�$��)�$��Q�J�E��9�9�1�1�%�8�D��4�9�9�#E�#E�E��	�	�.�.�5�5�d�;� ��0�0���=�0�#'�9�9�#E�#E�#K�#K�D�#Q�TU�#U�� �N�N�,�E�KP��I�I�6�6��	�	�:�:�@�@��F�H�?D��I�I�*�*��	�	�.�.�4�4�T�:�<� �D� ��� ���3�3�H�=��$�$�X�.�#�H�9'��*�D�?�?��O�O�/�/��9�!�&�&�)�4^�*_�_�+/�9�9�+R�+R�+T�(�F�L��'�'��,�?�"�.�.�x�8�*�3�3�5���.�.�u�5��)�)�%�0��	�	�2�2�9�9�:K�L��	�	�2�2�9�9�(�E�J��	�	�&�&�-�-�.?�@��	�	�&�&�-�-��I�I�*�*�0�0��?�!�C�U�L�o#�Q�&r*c�T�|jj|d�r|jj�|jjdj|dk7r!|j
j
dd|di�|jj|d�r�|jjj�}|j|dk7r7|jjj�}|j|dk7r�7|jj�yy)NrOr�r`)	rIr�rHr�rOrSr�r�clearActiveFormattingElements)rMr�r|s   r)�endTagAppletMarqueeObjectz8getPhases.<locals>.InBodyPhase.endTagAppletMarqueeObjects����y�y�'�'��f�
�6��	�	�0�0�2��y�y�%�%�b�)�.�.�%��-�?����&�&�':�V�U�6�]�<S�T��y�y�'�'��f�
�6��)�)�0�0�4�4�6���l�l�e�F�m�3�"�i�i�4�4�8�8�:�G��l�l�e�F�m�3��	�	�7�7�9�	7r*c��|jjdddd��|jj�|jj	tdd��|jjj�y)Nzunexpected-end-tag-treated-asrAz
br elementr(r�)rSr�rIr�r�r7r�rr�s  r)r�z'getPhases.<locals>.InBodyPhase.endTagBr+s_���K�K�"�"�#B�48�\�#R�
T��I�I�9�9�;��I�I�#�#�O�D�*�$E�F��I�I�"�"�&�&�(r*c�L�|jjddd�D�]}|j|dk(r�|jj|d��|jjdj|dk7r!|jjdd|di�|jjj
�|k7r)	|jjj
�|k7r�)y|jtvs��|jjdd|di�yy)Nr�rOrgr�)	rIr�rOrHrSr�rr�rr�s   r)rXz*getPhases.<locals>.InBodyPhase.endTagOther2s����	�	�.�.�t��t�4�
���9�9��f�
�-��I�I�4�4�U�6�]�4�K��y�y�-�-�b�1�6�6�%��-�G����.�.�/C�f�e�TZ�m�E\�]��)�)�0�0�4�4�6�$�>���)�)�0�0�4�4�6�$�>���~�~��8����.�.�/C�f�e�TZ�m�E\�]��
r*r�)	r�r�r�r�r�r9r�r�r�r�r�)r��article�aside�
blockquote�center�details�dirr��dl�fieldset�
figcaption�figure�footer�header�hgroup�main�menu�nav�olr(�section�summary�ul)r�r�r�)r�r�r�r^r)�b�big�code�em�font�i�s�small�strike�strong�tt�urr�)�applet�marquee�object�xmpr�)�arearA�embedr'�keygen�wbr)�param�source�trackr4r0r&r.r��iframer�)�noembedr�r�)rUrV)rArT�mathr�)r��colr��framer�r�r�r�r�r�r�)r�r�r�r�r�r�r��dialogr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r()r�r�r�)rr�r�r�r�r�r�rr�r�r�r�r�r�rA)?r@rArBrrQr�r�r�r�r�r�r�r�r�r�r�r�r�rrr
rrrrrrrr r"r$r,r7r9r<r|r;rBrErIrKrMrOrTr�r\r^rbrdrirlrr�r�rXr
rYrrr
rZr�
__classcell__)r�r�rs@��r)r�r��s����0�	�	L�
	:�	?�"	�	+�
	/�	0�	G�		K�	E�	+�
	Q�	C�	+�,	O�	+�	-�	-�	-�		/�	+�	=�	>�	+�	4�	4�
	+�	T�	8�>	+�	(�	*�	=�	2�	C�	+�
	8�
	8�	\�	+�	8�	@�$	�	8�	4�	8�"
	�a	L�F
	:�	)�	�2�&�1�1�,3
�
�U�'�'�(�,3
�*�
"�
$�,3
�
�\�"�,3
��)�*�
,3
�*��	
�,3
��o�.�,3
� �!3�4�,3
��\�"�,3
� �!1�2�,3
� �+�,�!,3
�"�)��#,3
�$#�$6�
8�%,3
�(�\�"�),3
�*�~�&�+,3
�,-�.I�J�-,3
�.�K� �/,3
�0�m�$�1,3
�2=�
#�
%�3,3
�6*�+>�?�7,3
�8�m�$�9,3
�:�:��;,3
�<�m�$�=,3
�>��(�?,3
�@�)�*�A,3
�B�~�&�C,3
�D�)�*�E,3
�F%�o�6�G,3
�H�~�&�I,3
�J�<�(�K,3
�L$�[�1�M,3
�N�|�$�O,3
�P�k�"�Q,3
�R�&�
(�S,3
�,��Z#0���/��/�/�
�Z� �
�Z� �*�,7�
8��Z� �
�'�N�
��0�
�m�,�-�.>�
@�
,�.G�H�
�8��1
��
� !,�
��r*r�c��eZdZe�Zd�Zd�Zd�Zd�Zd�Z	e
jg�Zee_
e
jdefg�Ze	e_
y)�getPhases.<locals>.TextPhasec�@�|jj|d�yrrr�s  r)r�z.getPhases.<locals>.TextPhase.processCharacters�r	r*c��|jjdd|jjdji�|jjj�|jj|j_y)Nz&expected-named-closing-tag-but-got-eofrOr�T)rSr�rIr�rOrr�riros r)r�z'getPhases.<locals>.TextPhase.processEOF�sd���K�K�"�"�#K�$*�D�I�I�,B�,B�2�,F�,K�,K�#L�
N��I�I�"�"�&�&�(� $��� 9� 9�D�K�K��r*c��Jd|dz��)Nz4Tried to process start tag %s in RCDATA/RAWTEXT moderOr�r�s  r)rTz*getPhases.<locals>.TextPhase.startTagOther�s��`�P�SX�Y_�S`�`�`�5r*c��|jjj�}|jdk(sJ�|jj
|j_y)Nr�)rIr�rrOrSr�rir�s   r)�endTagScriptz)getPhases.<locals>.TextPhase.endTagScript�sB���9�9�)�)�-�-�/�D��9�9��(�(�(� $��� 9� 9�D�K�K�r*c��|jjj�|jj|j_yr2)rIr�rrSr�rir�s  r)rXz(getPhases.<locals>.TextPhase.endTagOther�s.���I�I�"�"�&�&�(� $��� 9� 9�D�K�K�r*r�N)r@rArBr1rr�r�rTr�rXr
rYr
rZrr�r*r)�	TextPhaser��sf���G�	�	0�	�	a�	:�	:�2�&�1�1�"�5��"/���/��/�/�
�|�$�1&�'�
� +�
�r*r�c
�J��eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zej0dW�j2fde
fdefdefde
fdefdefdefdefdefg
�Zee_ej0defdefg�Zee_y)�getPhases.<locals>.InTablePhasec���|jjdjdvrK|jjj�|jjdjdvr�Jyy)Nr�)r�r�)rIr�rOrros r)�clearStackToTableContextz8getPhases.<locals>.InTablePhase.clearStackToTableContext�sX���)�)�(�(��,�1�1�9J�J��	�	�&�&�*�*�,��)�)�(�(��,�1�1�9J�Jr*c��|jjdjdk7r|jj	d�y|jj
sJ�y)Nr�r�zeof-in-table�rIr�rOrSr�r[ros r)r�z*getPhases.<locals>.InTablePhase.processEOF�sD���y�y�%�%�b�)�.�.�&�8����&�&�~�6��{�{�,�,�,�,r*c��|jj}|jjd|j_||jj_|jjj	|�y�N�inTableText)rSrirLr�r��rMr�r�s   r)r�z6getPhases.<locals>.InTablePhase.processSpaceCharacters�sV�� �K�K�-�-�M� $��� 2� 2�=� A�D�K�K��.;�D�K�K���+��K�K���4�4�U�;r*c��|jj}|jjd|j_||jj_|jjj	|�yr�)rSrirLr�r�r�s   r)r�z1getPhases.<locals>.InTablePhase.processCharacters�sV�� �K�K�-�-�M� $��� 2� 2�=� A�D�K�K��.;�D�K�K���+��K�K���/�/��6r*c��d|j_|jjdj	|�d|j_y)NTr�F)rI�insertFromTablerSrLr�r�s  r)rz*getPhases.<locals>.InTablePhase.insertText�s9��)-�D�I�I�%��K�K���x�(�:�:�5�A�(-�D�I�I�%r*c��|j�|jjjt�|jj|�|jjd|j_y)Nr�)	r�rIr�r�rr�rSrLrir�s  r)�startTagCaptionz/getPhases.<locals>.InTablePhase.startTagCaption�sS���)�)�+��I�I�.�.�5�5�f�=��I�I�#�#�E�*� $��� 2� 2�;� ?�D�K�K�r*c��|j�|jj|�|jjd|j_y)Nr��r�rIr�rSrLrir�s  r)�startTagColgroupz0getPhases.<locals>.InTablePhase.startTagColgroup�s;���)�)�+��I�I�#�#�E�*� $��� 2� 2�?� C�D�K�K�r*c�<�|jtdd��|S)Nr�r�)r�r7r�s  r)�startTagColz+getPhases.<locals>.InTablePhase.startTagCol�s���!�!�/�*�j�"I�J��Lr*c��|j�|jj|�|jjd|j_y�Nr�r�r�s  r)�startTagRowGroupz0getPhases.<locals>.InTablePhase.startTagRowGroup�s;���)�)�+��I�I�#�#�E�*� $��� 2� 2�=� A�D�K�K�r*c�<�|jtdd��|S)Nr�r�)r�r7r�s  r)�startTagImplyTbodyz2getPhases.<locals>.InTablePhase.startTagImplyTbody�s���!�!�/�'�:�"F�G��Lr*c���|jjdddd��|jjjt	d��|jj
s|Sy)Nrr�r)rSr�rir�r7r[r�s  r)rz-getPhases.<locals>.InTablePhase.startTagTable�sT���K�K�"�"�#I�18�W�#M�
O��K�K���+�+�O�G�,D�E��;�;�(�(���)r*c�R�|jjdj|�Sr�rNr�s  r)�startTagStyleScriptz3getPhases.<locals>.InTablePhase.startTagStyleScript�rOr*c�&�d|dvry|ddjt�dk(r[|jjd�|jj|�|jjj�y|j|�y)Nr7r�rz unexpected-hidden-input-in-table)	rzrrSr�rIr�r�rrTr�s  r)r z-getPhases.<locals>.InTablePhase.startTagInput�st���%��-�'��&�M�&�)�3�3�4D�E��Q����&�&�'I�J��	�	�'�'��.��	�	�&�&�*�*�,��"�"�5�)r*c�6�|jjd�|jj�h|jj	|�|jj
d|j_|jj
j
�yy)Nzunexpected-form-in-tabler�)rSr�rIr�r�r�rr�s  r)r�z,getPhases.<locals>.InTablePhase.startTagForm�sm���K�K�"�"�#=�>��y�y�$�$�,��	�	�'�'��.�(,�	�	�(>�(>�r�(B��	�	�%��	�	�&�&�*�*�,�-r*c���|jjdd|di�d|j_|jjdj|�d|j_y)Nz)unexpected-start-tag-implies-table-voodoorOTr�F)rSr�rIr�rLr�r�s  r)rTz-getPhases.<locals>.InTablePhase.startTagOther�sY���K�K�"�"�#N�QW�Y^�_e�Yf�Pg�h�(,�D�I�I�%��K�K���x�(�8�8��?�(-�D�I�I�%r*c��|jjdd���r0|jj�|jjdjdk7r@|j
j
dd|jjdjd��|jjdjdk7rK|jjj�|jjdjdk7r�K|jjj�|j
j�y|j
jsJ�|j
j
�y)Nr�r�r�zend-tag-too-early-namedrX)
rIr�rHr�rOrSr�rrkr[r�s  r)�endTagTablez+getPhases.<locals>.InTablePhase.endTagTables���y�y�'�'���'�A��	�	�0�0�2��9�9�)�)�"�-�2�2�g�=��K�K�*�*�+D�7>�<@�I�I�<R�<R�SU�<V�<[�<[�,]�^��i�i�,�,�R�0�5�5��@��I�I�*�*�.�.�0��i�i�,�,�R�0�5�5��@��	�	�&�&�*�*�,����.�.�0��{�{�,�,�,�,����&�&�(r*c�F�|jjdd|di�yr�rr�s  r)�endTagIgnorez,getPhases.<locals>.InTablePhase.endTagIgnorer�r*c���|jjdd|di�d|j_|jjdj|�d|j_y)Nz'unexpected-end-tag-implies-table-voodoorOTr�F)rSr�rIr�rLr�r�s  r)rXz+getPhases.<locals>.InTablePhase.endTagOthersX���K�K�"�"�#L�v�W\�]c�Wd�Ne�f�(,�D�I�I�%��K�K���x�(�6�6�u�=�(-�D�I�I�%r*r�r�r�r��r�r�r�)r�r�r�r�)r�r�r4r�)r�r�r�r�r�r�r�r�r�r�r�N)r@rArBr1rr�r�r�r�rr�r�r�r�r�rr�r r�rTr�r�rXr
rYrr
rZr�rs�r)�InTablePhaser��s����G�	�	-�	-�	<�	7�	.�	@�	D�
	�	B�
	�	�	G�	*�	-�	.�	)� 	R�	.�2�&�1�1�
�U�'�'�(�
��(�
�)�*�
�K� �
(�*:�;�
�!3�4�
�m�$�
 �"5�6�
�m�$�
�\�"�3
���#0���/��/�/�
�k�"�,�-9�
;�1
��
�
!,�
�r*r�c�P���eZdZdZ��fd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Z�xZS)
�#getPhases.<locals>.InTableTextPhase)r��characterTokensc�@��t�|�|i|��d|_g|_yr2)r�rQr�r�)rMr�r&�InTableTextPhaser�s   ��r)rQz,getPhases.<locals>.InTableTextPhase.__init__6s(����"�D�2�D�C�F�C�!%�D��#%�D� r*c�n�dj|jD�cgc]}|d��	c}�}t|D�cgc]
}|tv��c}�r<td|d�}|j
jdj|�g|_y|r|jj|�g|_ycc}wcc}w)Nr'r�r�r3r�)	�joinr�r�rrrSrLrrI)rMrkr�r�s    r)�flushCharactersz3getPhases.<locals>.InTableTextPhase.flushCharacters;s����7�7�T�5I�5I�J�T�D��L�J�K�D��D�A�D�D��/�A�B�!+�L�!9�4�H�����"�"�9�-�8�8��?�$&�D� ���	�	�$�$�T�*�#%�D� ��
K��As
�B-�B2c�\�|j�|j|j_|Sr2�r�r�rSrir�s  r)r�z2getPhases.<locals>.InTableTextPhase.processCommentD�%��� � �"� $� 2� 2�D�K�K���Lr*c�Z�|j�|j|j_yr9r�ros r)r�z.getPhases.<locals>.InTableTextPhase.processEOFIs#��� � �"� $� 2� 2�D�K�K��r*c�L�|ddk(ry|jj|�y�Nr�r��r�r�r�s  r)r�z5getPhases.<locals>.InTableTextPhase.processCharactersNs%���V�}��(��� � �'�'��.r*c�:�|jj|�yr2r�r�s  r)r�z:getPhases.<locals>.InTableTextPhase.processSpaceCharactersSs��� � �'�'��.r*c�\�|j�|j|j_|Sr2r�r�s  r)r�z3getPhases.<locals>.InTableTextPhase.processStartTagXr�r*c�\�|j�|j|j_|Sr2r�r�s  r)r�z1getPhases.<locals>.InTableTextPhase.processEndTag]r�r*)
r@rArBrrQr�r�r�r�r�r�r�r�)r�r�s@�r)r�r�3s0���8�	�	&�
	&�	�
	�
	/�
	/�
	�
	r*r�c����eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
ejd
W�j fdefg�Ze	e_ejde
fd
efdefg�Ze
e_y)�!getPhases.<locals>.InCaptionPhasec�>�|jjdd��S)Nr�r�r��rIr�ros r)�ignoreEndTagCaptionz5getPhases.<locals>.InCaptionPhase.ignoreEndTagCaptionfs���y�y�/�/�	�7�/�K�K�Kr*c�R�|jjdj�yrM�rSrLr�ros r)r�z,getPhases.<locals>.InCaptionPhase.processEOFi����K�K���x�(�3�3�5r*c�R�|jjdj|�SrM�rSrLr�r�s  r)r�z3getPhases.<locals>.InCaptionPhase.processCharactersl�"���;�;�%�%�h�/�A�A�%�H�Hr*c��|jj�|j�}|jjj	td��|s|Sy�Nr��rSr�r�rir�r7�rMr��ignoreEndTags   r)�startTagTableElementz6getPhases.<locals>.InCaptionPhase.startTagTableElementosJ���K�K�"�"�$��3�3�5�L��K�K���+�+�O�I�,F�G���� r*c�R�|jjdj|�SrMrNr�s  r)rTz/getPhases.<locals>.InCaptionPhase.startTagOtherwrOr*c�:�|j��sX|jj�|jjdjdk7r@|j
j
dd|jjdjd��|jjdjdk7rK|jjj�|jjdjdk7r�K|jjj�|jj�|j
jd|j
_
y|j
jsJ�|j
j
�y)Nr�r�rWrXr�)r�rIrHr�rOrSr�rr�rLrir[r�s  r)�
endTagCaptionz/getPhases.<locals>.InCaptionPhase.endTagCaptionzs-���+�+�-��	�	�0�0�2��9�9�)�)�"�-�2�2�i�?��K�K�*�*�+Q�7@�<@�I�I�<R�<R�SU�<V�<[�<[�,]�^��i�i�,�,�R�0�5�5��B��I�I�*�*�.�.�0��i�i�,�,�R�0�5�5��B��	�	�&�&�*�*�,��	�	�7�7�9�$(�K�K�$6�$6�y�$A����!��{�{�,�,�,�,����&�&�(r*c��|jj�|j�}|jjj	td��|s|Syrrrs   r)r�z-getPhases.<locals>.InCaptionPhase.endTagTable�sJ���K�K�"�"�$��3�3�5�L��K�K���+�+�O�I�,F�G���� r*c�F�|jjdd|di�yr�rr�s  r)r�z.getPhases.<locals>.InCaptionPhase.endTagIgnore�r�r*c�R�|jjdj|�SrM�rSrLr�r�s  r)rXz-getPhases.<locals>.InCaptionPhase.endTagOther��"���;�;�%�%�h�/�=�=�e�D�Dr*r��	r�r�r�r�r�r�r�r�r�r�r�)
r�r�r�r�r�r�r�r�r�r�N)r@rArBr1rr�r�r�r	rTrr�r�rXr
rYrr
rZrr�s�r)�InCaptionPhaser�bs�����G�	�	L�	6�	I�	�	G�	)�$	�	R�	E�2�&�1�1�
�U�'�'�(��2�
4�3
���
#0���/��/�/�
�
�&�
�k�"��*�
,�1
��
�!,�
�r*rc����eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Ze
jd	W�jfd
efg�Ze	e_e
jde
fd
efg�Zee_y)
�%getPhases.<locals>.InColumnGroupPhasec�N�|jjdjdk(S)Nr�r�)rIr�rOros r)�ignoreEndTagColgroupz:getPhases.<locals>.InColumnGroupPhase.ignoreEndTagColgroup�s"���9�9�)�)�"�-�2�2�f�<�<r*c���|jjdjdk(r|jjsJ�y|j�}|j
td��|syy)Nr�r�r�T)rIr�rOrSr[r�endTagColgroupr7)rMrs  r)r�z0getPhases.<locals>.InColumnGroupPhase.processEOF�sa���y�y�%�%�b�)�.�.�&�8��{�{�,�,�,�,��#�8�8�:���#�#�O�J�$?�@�#��$r*c�`�|j�}|jtd��|s|Sy�Nr��rrr7rs   r)r�z7getPhases.<locals>.InColumnGroupPhase.processCharacters��0���4�4�6�L�����
� ;�<���� r*c��|jj|�|jjj�d|d<yrfrgr�s  r)r�z1getPhases.<locals>.InColumnGroupPhase.startTagCol�rir*c�`�|j�}|jtd��|s|Syrrrs   r)rTz3getPhases.<locals>.InColumnGroupPhase.startTagOther�rr*c�"�|j�r3|jjsJ�|jj�y|jj
j
�|jjd|j_y�Nr�)	rrSr[r�rIr�rrLrir�s  r)rz4getPhases.<locals>.InColumnGroupPhase.endTagColgroup�sb���(�(�*��{�{�,�,�,�,����&�&�(��	�	�&�&�*�*�,�$(�K�K�$6�$6�y�$A����!r*c�@�|jjdddi�y)Nz
no-end-tagrOr�rr�s  r)�	endTagColz/getPhases.<locals>.InColumnGroupPhase.endTagCol�s���K�K�"�"�<�&�%��Ar*c�`�|j�}|jtd��|s|Syrrrs   r)rXz1getPhases.<locals>.InColumnGroupPhase.endTagOther�rr*r�r�r�N)r@rArBr1rrr�r�r�rTrr#rXr
rYrr
rZrr�s�r)�InColumnGroupPhaser�s�����G�	�	=�	 �	�	4�
	�	B�	B�	�2�&�1�1�
�U�'�'�(�
�K� �3
���#0���/��/�/�
��(�
�I��1
��
�!,�
�r*r%c���eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zej$d
W�j&fde	fde
fdefg�Zee_ej$de
fdefdefg�Zee_y)�#getPhases.<locals>.InTableBodyPhasec�`�|jjdjdvrJ|jjj�|jjdjdvr�J|jjdjdk(r|jj
sJ�yy)Nr�)r�r�r�r�r�)rIr�rOrrSr[ros r)�clearStackToTableBodyContextz@getPhases.<locals>.InTableBodyPhase.clearStackToTableBodyContext�s����)�)�(�(��,�1�1�:K�K��	�	�&�&�*�*�,�	�)�)�(�(��,�1�1�:K�K�
�y�y�%�%�b�)�.�.�&�8��{�{�,�,�,�,�9r*c�R�|jjdj�yr!r�ros r)r�z.getPhases.<locals>.InTableBodyPhase.processEOF�����K�K���y�)�4�4�6r*c�R�|jjdj|�Sr!r�r�s  r)r�z:getPhases.<locals>.InTableBodyPhase.processSpaceCharacters��"���;�;�%�%�i�0�G�G��N�Nr*c�R�|jjdj|�Sr!rr�s  r)r�z5getPhases.<locals>.InTableBodyPhase.processCharacters��"���;�;�%�%�i�0�B�B�5�I�Ir*c��|j�|jj|�|jjd|j_y)Nr�)r)rIr�rSrLrir�s  r)�
startTagTrz.getPhases.<locals>.InTableBodyPhase.startTagTrs;���-�-�/��I�I�#�#�E�*� $��� 2� 2�7� ;�D�K�K�r*c�~�|jjdd|di�|jtdd��|S)Nzunexpected-cell-in-table-bodyrOr�r�)rSr�r1r7r�s  r)�startTagTableCellz5getPhases.<locals>.InTableBodyPhase.startTagTableCells;���K�K�"�"�#B�$*�E�&�M�#:�
<��O�O�O�D�*�=�>��Lr*c��|jjdd��s:|jjdd��s|jjdd��rM|j�|jt	|jj
dj��|S|jjsJ�|jj�y�Nr�r�r�r�r�r��
rIr�r)�endTagTableRowGroupr7r�rOrSr[r�r�s  r)�startTagTableOtherz6getPhases.<locals>.InTableBodyPhase.startTagTableOthers����	�	�(�(��'�(�B��	�	�(�(��'�(�B��I�I�,�,�W�g�,�F��1�1�3��(�(�#�D�I�I�$:�$:�2�$>�$C�$C�D�F����{�{�,�,�,�,����&�&�(r*c�R�|jjdj|�Sr!rNr�s  r)rTz1getPhases.<locals>.InTableBodyPhase.startTagOther�"���;�;�%�%�i�0�@�@��G�Gr*c�@�|jj|dd��r]|j�|jjj	�|j
jd|j
_y|j
jdd|di�y)NrOr�r�r�� unexpected-end-tag-in-table-body)	rIr�r)r�rrSrLrir�r�s  r)r7z7getPhases.<locals>.InTableBodyPhase.endTagTableRowGroups|���y�y�'�'��f�
�w�'�G��1�1�3��	�	�&�&�*�*�,�$(�K�K�$6�$6�y�$A����!����&�&�'I�(.��f�
�'>�@r*c��|jjdd��s:|jjdd��s|jjdd��rM|j�|jt	|jj
dj��|S|jjsJ�|jj�yr5r6r�s  r)r�z/getPhases.<locals>.InTableBodyPhase.endTagTable%s����	�	�(�(��'�(�B��	�	�(�(��'�(�B��I�I�,�,�W�g�,�F��1�1�3��(�(�#�D�I�I�$:�$:�2�$>�$C�$C�D�F����{�{�,�,�,�,����&�&�(r*c�F�|jjdd|di�y)Nr<rOrr�s  r)r�z0getPhases.<locals>.InTableBodyPhase.endTagIgnore2�#���K�K�"�"�#E�$*�E�&�M�#:�
<r*c�R�|jjdj|�Sr!rr�s  r)rXz/getPhases.<locals>.InTableBodyPhase.endTagOther6�"���;�;�%�%�i�0�>�>�u�E�Er*r�r��r�r�)r�r�r�r�r�r�r�r�)r�r�r�r�r�r�r�r�N)r@rArBr1rr)r�r�r�r1r3r8rTr7r�r�rXr
rYrr
rZrr�s�r)�InTableBodyPhaser'�s�����G�	�	-�	7�	O�	J�	<�
	�	)�	H�	@�	)�	<�	F�2�&�1�1�
�U�'�'�(�
�:��
�,�-�
F�
�
!�	3
���#0���/��/�/�
(�*=�>�
�k�"��!�
#�1
��
�!,�
�r*rCc���eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zej&dW�j(fde
fdefg�Zee_ej&de
fdefdefdefg�Zee_y)�getPhases.<locals>.InRowPhasec�b�|jjdjdvr�|jj	dd|jjdji�|jjj�|jjdjdvr��yy)Nr�)r�r�z'unexpected-implied-end-tag-in-table-rowrO)rIr�rOrSr�rros r)�clearStackToTableRowContextz9getPhases.<locals>.InRowPhase.clearStackToTableRowContextOs����)�)�(�(��,�1�1��G����&�&�'P�(.��	�	�0F�0F�r�0J�0O�0O�'P�R��	�	�&�&�*�*�,��)�)�(�(��,�1�1��Gr*c�>�|jjdd��S)Nr�r�r�r�ros r)�ignoreEndTagTrz,getPhases.<locals>.InRowPhase.ignoreEndTagTrUs���y�y�/�/��g�/�F�F�Fr*c�R�|jjdj�yr!r�ros r)r�z(getPhases.<locals>.InRowPhase.processEOFYr+r*c�R�|jjdj|�Sr!r�r�s  r)r�z4getPhases.<locals>.InRowPhase.processSpaceCharacters\r-r*c�R�|jjdj|�Sr!rr�s  r)r�z/getPhases.<locals>.InRowPhase.processCharacters_r/r*c��|j�|jj|�|jjd|j_|jjjt�y)Nr�)	rGrIr�rSrLrir�r�rr�s  r)r3z/getPhases.<locals>.InRowPhase.startTagTableCellbsS���,�,�.��I�I�#�#�E�*� $��� 2� 2�8� <�D�K�K���I�I�.�.�5�5�f�=r*c�`�|j�}|jtd��|s|Sy�Nr��rI�endTagTrr7rs   r)r8z0getPhases.<locals>.InRowPhase.startTagTableOtherhs.���.�.�0�L��M�M�/�$�/�0���� r*c�R�|jjdj|�Sr!rNr�s  r)rTz+getPhases.<locals>.InRowPhase.startTagOtheror:r*c�B�|j�s]|j�|jjj	�|j
jd|j
_y|j
jsJ�|j
j�yr�)
rIrGrIr�rrSrLrir[r�r�s  r)rQz&getPhases.<locals>.InRowPhase.endTagTrrsp���&�&�(��0�0�2��	�	�&�&�*�*�,�$(�K�K�$6�$6�}�$E����!��{�{�,�,�,�,����&�&�(r*c�`�|j�}|jtd��|s|SyrOrPrs   r)r�z)getPhases.<locals>.InRowPhase.endTagTable|s0���.�.�0�L��M�M�/�$�/�0� ��� r*c��|jj|dd��r|jtd��|S|jj�y)NrOr�r�r�)rIr�rQr7rSr�r�s  r)r7z1getPhases.<locals>.InRowPhase.endTagTableRowGroup�sC���y�y�'�'��f�
�w�'�G��
�
�o�d�3�4������&�&�(r*c�F�|jjdd|di�y)Nzunexpected-end-tag-in-table-rowrOrr�s  r)r�z*getPhases.<locals>.InRowPhase.endTagIgnore�s#���K�K�"�"�#D�$*�E�&�M�#:�
<r*c�R�|jjdj|�Sr!rr�s  r)rXz)getPhases.<locals>.InRowPhase.endTagOther�rAr*r�rB)r�r�r�r�r�r�r�r�r�r�)r�r�r�r�r�r�r�N)r@rArBr1rrGrIr�r�r�r3r8rTrQr�r7r�rXr
rYrr
rZrr�s�r)�
InRowPhaserEJs�����G�	�	-�	G�	7�	O�	J�	>�	�	H�	)�	�	)�	<�	F�2�&�1�1�
�U�'�'�(�
�,�-��'�
)�3
���#0���/��/�/�
�8��
�k�"�
(�*=�>�
G�
�
�	1
��
�!,�
�r*rXc����eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
ejd
W�j fdefg�Ze	e_ejde
fd
efdefg�Ze
e_y)�getPhases.<locals>.InCellPhasec���|jjdd��r|jtd��y|jjdd��r|jtd��yy�Nr�r�r�r�)rIr��endTagTableCellr7ros r)�	closeCellz(getPhases.<locals>.InCellPhase.closeCell�s\���y�y�'�'��g�'�>��$�$�_�T�%:�;����)�)�$��)�@��$�$�_�T�%:�;�Ar*c�R�|jjdj�yrMr�ros r)r�z)getPhases.<locals>.InCellPhase.processEOF�rr*c�R�|jjdj|�SrMrr�s  r)r�z0getPhases.<locals>.InCellPhase.processCharacters�rr*c��|jjdd��s|jjdd��r|j�|S|jjsJ�|jj�yr\)rIr�r^rSr[r�r�s  r)r8z1getPhases.<locals>.InCellPhase.startTagTableOther�sd���	�	�(�(��w�(�?��I�I�,�,�T�7�,�C���� ����{�{�,�,�,�,����&�&�(r*c�R�|jjdj|�SrMrNr�s  r)rTz,getPhases.<locals>.InCellPhase.startTagOther�rOr*c��|jj|dd���r|jj|d�|jjdj|dk7rZ|j
j
dd|di�	|jjj�}|j|dk(rn%�8|jjj�|jj�|j
jd|j
_
y|j
j
dd|di�y)NrOr�r�r�zunexpected-cell-end-tagr�r�)rIr�rHr�rOrSr�rr�rLrir�s   r)r]z.getPhases.<locals>.InCellPhase.endTagTableCell�s
���y�y�'�'��f�
�w�'�G��	�	�0�0��v��?��9�9�)�)�"�-�2�2�e�F�m�C��K�K�*�*�+D�,2�E�&�M�+B�D��#�y�y�5�5�9�9�;���9�9��f�
�5�!��
�I�I�*�*�.�.�0��	�	�7�7�9�$(�K�K�$6�$6�w�$?����!����&�&�';�f�e�F�m�=T�Ur*c�F�|jjdd|di�yr�rr�s  r)r�z+getPhases.<locals>.InCellPhase.endTagIgnore�r�r*c��|jj|dd��r|j�|S|jj	�y)NrOr�r�)rIr�r^rSr�r�s  r)�endTagImplyz*getPhases.<locals>.InCellPhase.endTagImply�s>���y�y�'�'��f�
�w�'�G���� ������&�&�(r*c�R�|jjdj|�SrMrr�s  r)rXz*getPhases.<locals>.InCellPhase.endTagOther�rr*r�rrB)r�r�r�r�r�roN)r@rArBr1rr^r�r�r8rTr]r�rfrXr
rYrr
rZrr�s�r)�InCellPhaserZ�s�����G�	�	<�	6�	I�	)�	G�	V�"	R�	)�	E�2�&�1�1�
�U�'�'�(��0�
2�3
���
#0���/��/�/�
�?�+�
;�\�J�
7��E�1
��
�
!,�
�r*rhc	���eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zd�Zd�Zej$d
W�j&fdefdefde	fde
fdefg�Zee_ej$de
fdefdefg�Zee_y)� getPhases.<locals>.InSelectPhasec��|jjdjdk7r|jj	d�y|jj
sJ�y)Nr�r�z
eof-in-selectr�ros r)r�z+getPhases.<locals>.InSelectPhase.processEOF�sD���y�y�%�%�b�)�.�.�&�8����&�&��7��{�{�,�,�,�,r*c�R�|ddk(ry|jj|d�yr�rr�s  r)r�z2getPhases.<locals>.InSelectPhase.processCharacters�s'���V�}��(���I�I� � ��v��/r*c���|jjdjdk(r$|jjj�|jj	|�yr@�rIr�rOrr�r�s  r)�startTagOptionz/getPhases.<locals>.InSelectPhase.startTagOption�sG���y�y�%�%�b�)�.�.�(�:��	�	�&�&�*�*�,��I�I�#�#�E�*r*c�b�|jjdjdk(r$|jjj�|jjdjdk(r$|jjj�|jj	|�y)Nr�rArTrnr�s  r)�startTagOptgroupz1getPhases.<locals>.InSelectPhase.startTagOptgroup	sz���y�y�%�%�b�)�.�.�(�:��	�	�&�&�*�*�,��y�y�%�%�b�)�.�.�*�<��	�	�&�&�*�*�,��I�I�#�#�E�*r*c�n�|jjd�|jtd��y)Nzunexpected-select-in-selectr�)rSr��endTagSelectr7r�s  r)rEz/getPhases.<locals>.InSelectPhase.startTagSelect	s(���K�K�"�"�#@�A����o�h�7�8r*c���|jjd�|jjdd��r|j	td��|S|jjsJ�y)Nzunexpected-input-in-selectr�r�)rSr�rIr�rsr7r[r�s  r)r z.getPhases.<locals>.InSelectPhase.startTagInput	sW���K�K�"�"�#?�@��y�y�'�'��(�'�C��!�!�/�(�";�<����{�{�,�,�,�,r*c�R�|jjdj|�Sr�rNr�s  r)rz/getPhases.<locals>.InSelectPhase.startTagScript	rOr*c�F�|jjdd|di�y)Nzunexpected-start-tag-in-selectrOrr�s  r)rTz.getPhases.<locals>.InSelectPhase.startTagOther	�#���K�K�"�"�#C�$*�E�&�M�#:�
<r*c���|jjdjdk(r%|jjj�y|jjdddi�y)Nr�rA�unexpected-end-tag-in-selectrO�rIr�rOrrSr�r�s  r)�endTagOptionz-getPhases.<locals>.InSelectPhase.endTagOption	sR���y�y�%�%�b�)�.�.�(�:��	�	�&�&�*�*�,����&�&�'E�(.��'9�;r*c��|jjdjdk(rJ|jjdjdk(r$|jjj�|jjdjdk(r%|jjj�y|jjdddi�y)Nr�rA���rTryrOrzr�s  r)�endTagOptgroupz/getPhases.<locals>.InSelectPhase.endTagOptgroup%	s����	�	�&�&�r�*�/�/�8�;��I�I�*�*�2�.�3�3�z�A��	�	�&�&�*�*�,��y�y�%�%�b�)�.�.�*�<��	�	�&�&�*�*�,����&�&�'E�(.�
�';�=r*c��|jjdd��r�|jjj�}|jdk7r4|jjj�}|jdk7r�4|j
j
�y|j
jsJ�|j
j�y)Nr�r�)	rIr�r�rrOrSrkr[r�r�s   r)rsz-getPhases.<locals>.InSelectPhase.endTagSelect2	s����y�y�'�'��(�'�C��y�y�-�-�1�1�3���i�i�8�+��9�9�1�1�5�5�7�D��i�i�8�+����.�.�0��{�{�,�,�,�,����&�&�(r*c�F�|jjdd|di�y)NryrOrr�s  r)rXz,getPhases.<locals>.InSelectPhase.endTagOther=	�#���K�K�"�"�#A�$*�E�&�M�#:�
<r*r�rArTr�)r4r�r�r�N)r@rArBr1rr�r�rorqrEr rrTr{r~rsrXr
rYrr
rZrr�s�r)�
InSelectPhaserj�s�����G�	�	-�	0�
	+�	+�	9�	-�	G�	<�	;�	=�		)�	<�2�&�1�1�
�U�'�'�(�
�~�&�
�)�*�
�~�&�
,�m�<�
�~�&�
3
���#0���/��/�/�
�|�$�
��(�
�|�$�1
��
�
!,�
�r*r�c��eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
ejdefg�Z
ee
_ejde	fg�Ze
e_y)	�'getPhases.<locals>.InSelectInTablePhasec�R�|jjdj�y�Nr�r�ros r)r�z2getPhases.<locals>.InSelectInTablePhase.processEOFU	s���K�K���z�*�5�5�7r*c�R�|jjdj|�Sr�rr�s  r)r�z9getPhases.<locals>.InSelectInTablePhase.processCharactersX	s"���;�;�%�%�j�1�C�C�E�J�Jr*c�|�|jjdd|di�|jtd��|S)Nz5unexpected-table-element-start-tag-in-select-in-tablerOr�)rSr�rXr7r�s  r)rz5getPhases.<locals>.InSelectInTablePhase.startTagTable[	s<���K�K�"�"�#Z�]c�ej�kq�er�\s�t����_�X�6�7��Lr*c�R�|jjdj|�Sr�rNr�s  r)rTz5getPhases.<locals>.InSelectInTablePhase.startTagOther`	s"���;�;�%�%�j�1�A�A�%�H�Hr*c��|jjdd|di�|jj|dd��r|j	td��|Sy)Nz3unexpected-table-element-end-tag-in-select-in-tablerOr�r�r�)rSr�rIr�rXr7r�s  r)r�z3getPhases.<locals>.InSelectInTablePhase.endTagTablec	s]���K�K�"�"�#X�[a�ch�io�cp�Zq�r��y�y�'�'��f�
�w�'�G�� � ���!:�;���Hr*c�R�|jjdj|�Sr�rr�s  r)rXz3getPhases.<locals>.InSelectInTablePhase.endTagOtheri	s"���;�;�%�%�j�1�?�?��F�Fr*)r�r�r�r�r�r�r�r�N)r@rArBr1rr�r�rrTr�rXr
rYr
rZrr�r*r)�InSelectInTablePhaser�R	s����G�	�	8�	K�	�
	I�	�	G�2�&�1�1�
N�
�
�3
���#0���/��/�/�
N�
�
�1
��
�!,�
�r*r�c�L��eZdZe�Zegd��Zd�Z�fd�Zd�Z	d�Z
y)�(getPhases.<locals>.InForeignContentPhase),r�r�r�r�rAr�r�r�r�r�r�r�r��h1�h2�h3�h4�h5�h6r�r0r�r'r�r�r�r9rr�r(r�rGr�r��spanr�r��sub�supr�r�r�r��varc��idd�dd�dd�dd�d	d
�dd�d
d�dd�dd�dd�dd�dd�dd�dd�dd�dd �d!d"�id#d$�d%d&�d'd(�d)d*�d+d,�d-d.�d/d0�d1d2�d3d4�d5d6�d7d8�d9d:�d;d<�d=d>�d?d@�dAdB�dCdD��dEdFdG��}|dH|vr||dH|dH<yy)IN�altglyph�altGlyph�altglyphdef�altGlyphDef�altglyphitem�altGlyphItem�animatecolor�animateColor�
animatemotion�
animateMotion�animatetransform�animateTransform�clippath�clipPath�feblend�feBlend�
fecolormatrix�
feColorMatrix�fecomponenttransfer�feComponentTransfer�fecomposite�feComposite�feconvolvematrix�feConvolveMatrix�fediffuselighting�feDiffuseLighting�fedisplacementmap�feDisplacementMap�fedistantlight�feDistantLight�feflood�feFlood�fefunca�feFuncA�fefuncb�feFuncB�fefuncg�feFuncG�fefuncr�feFuncR�fegaussianblur�feGaussianBlur�feimage�feImage�femerge�feMerge�femergenode�feMergeNode�femorphology�feMorphology�feoffset�feOffset�fepointlight�fePointLight�fespecularlighting�feSpecularLighting�fespotlight�feSpotLight�fetile�feTile�feturbulence�feTurbulence�
foreignobject�
foreignObject�glyphref�glyphRef�lineargradient�linearGradient�radialGradient�textPath)�radialgradient�textpathrOr�)rMr��replacementss   r)�adjustSVGTagNamesz:getPhases.<locals>.InForeignContentPhase.adjustSVGTagNames�	s���#4�J�
�#4�)�=�#4�*�N�#4�+�N�#4�,�_�	#4�
/�0B�#4�'�
�
#4�&�y�#4�,�_�#4�2�3H�#4�*�=�#4�/�0B�#4�0�1D�#4�0�1D�#4�-�.>�#4�&�y�#4� &�y�!#4�"&�y�##4�$&�y�%#4�&&�y�'#4�(-�.>�)#4�*&�y�+#4�,&�y�-#4�.*�=�/#4�0+�N�1#4�2'�
�3#4�4+�N�5#4�61�2F�7#4�8*�=�9#4�:%�h�;#4�<+�N�=#4�>,�_�?#4�@'�
�A#4�B-�.>�C#4�D/?�(2�G#4�L�J�V�}��,� ,�U�6�]� ;��f�
�-r*c���|ddk(rd|d<n<|jjr&td�|dD��rd|j_�j||�y)Nr�r�u�c3�,K�|]}|tv���y�wr2)r)�.0r�s  r)�	<genexpr>zMgetPhases.<locals>.InForeignContentPhase.processCharacters.<locals>.<genexpr>�	s����L�d�d�/�1�L�s�F)rSrnr�r�)rMr�rs  �r)r�z:getPhases.<locals>.InForeignContentPhase.processCharacters�	sS����V�}��(� (��f�
��+�+�(�(��L�e�F�m�L�L�).����&��#�#�D�%�0r*c��|jjd}|d|jvs+|ddk(�r�t|dj	��hd�z�r�|j
j
dd|di�|jjdj|jjk7�r'|j
j|jjd�s�|j
j|jjd�s�|jjj�|jjdj|jjk7re|j
j|jjd�s3|j
j|jjd�s��|S|jtdk(r|j
j|�nB|jtdk(r,|j|�|j
j|�|j
j!|�|j|d	<|jj#|�|d
r*|jjj�d|d<yy)
Nr�rOr�r�>�face�size�colorz*unexpected-html-element-in-foreign-contentrvr�rxr�Tr�)rIr��breakoutElements�set�keysrSr�rxr�r}rrrrr�rrr�)rMr�r�s   r)r�z8getPhases.<locals>.InForeignContentPhase.processStartTag�	s&���)�)�0�0��4�K��f�
��!6�!6�6��v��&�(��U�6�]�'�'�)�*�-F�F����&�&�'S�(.��f�
�'>�@��y�y�-�-�b�1�;�;��y�y�1�1�2��;�;�=�=�d�i�i�>T�>T�UW�>X�Y��;�;�C�C�D�I�I�DZ�DZ�[]�D^�_��I�I�*�*�.�.�0�	�y�y�-�-�b�1�;�;��y�y�1�1�2��;�;�=�=�d�i�i�>T�>T�UW�>X�Y��;�;�C�C�D�I�I�DZ�DZ�[]�D^�_����(�(�J�x�,@�@��K�K�6�6�u�=� �*�*�j��.?�?��*�*�5�1��K�K�3�3�E�:����3�3�E�:�%0�%:�%:��k�"��	�	�'�'��.���'��I�I�*�*�.�.�0�7;�E�3�4�(r*c��t|jj�dz
}|jjd}|jj	t
�|dk7r!|jjdd|di�	|jj	t
�|dk(r�|jj|jjdk(rS|jjj�|jjj|j_|jjj�|k7r@|jjsJ�|jjj�|k7r�@d}	|S|dz}|jj|}|j|jjk7r��X|jjj|�}	|S)Nrr�rOr�r�)r�rIr�rOrzrrSr�rirLr�r�rrxr�r�)rMr��	nodeIndexr�r�s     r)r�z6getPhases.<locals>.InForeignContentPhase.processEndTag�	s����D�I�I�2�2�3�a�7�I��9�9�)�)�"�-�D��y�y�"�"�#3�4��f�
�E����&�&�';�f�e�F�m�=T�U���9�9�&�&�'7�8�E�&�M�I��{�{�(�(�D�K�K�,>�,>�}�,M�M����)�)�9�9�;�,0�K�K�,=�,=�,K�,K����)��)�)�0�0�4�4�6�$�>�#�y�y�5�5�5�5��)�)�0�0�4�4�6�$�>� $�I�����Q��	��y�y�-�-�i�8���>�>�T�Y�Y�%?�%?�?�� $��� 1� 1� ?� ?�� F�I���r*N)r@rArBr1rr�r�r�r�r�r�r�s�r)�InForeignContentPhaser�x	s1����G�	�$�&G�H��'	<�R	1�	<�6	r*r�c��eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zejdefg�Ze	e_ejde
fg�Zee_y	)
�!getPhases.<locals>.AfterBodyPhasec��yr2r�ros r)r�z,getPhases.<locals>.AfterBodyPhase.processEOF�	���r*c�j�|jj||jjd�y)Nrrr�s  r)r�z0getPhases.<locals>.AfterBodyPhase.processComment�	s'��
�I�I�#�#�E�4�9�9�+A�+A�!�+D�Er*c��|jjd�|jjd|j_|S)Nzunexpected-char-after-bodyr��rSr�rLrir�s  r)r�z3getPhases.<locals>.AfterBodyPhase.processCharacters�	s5���K�K�"�"�#?�@� $��� 2� 2�8� <�D�K�K���Lr*c�R�|jjdj|�SrMrNr�s  r)rz.getPhases.<locals>.AfterBodyPhase.startTagHtml�	rOr*c��|jjdd|di�|jjd|j_|S)Nzunexpected-start-tag-after-bodyrOr�r�r�s  r)rTz/getPhases.<locals>.AfterBodyPhase.startTagOther�	sC���K�K�"�"�#D�$*�E�&�M�#:�
<� $��� 2� 2�8� <�D�K�K���Lr*c��|jjr|jjd�y|jjd|j_y)Nz'unexpected-end-tag-after-body-innerhtml�afterAfterBody)rSr[r�rLri)rMrOs  r)r^z,getPhases.<locals>.AfterBodyPhase.endTagHtml
s>���{�{�$�$����&�&�'P�Q�$(�K�K�$6�$6�7G�$H����!r*c��|jjdd|di�|jjd|j_|S)Nzunexpected-end-tag-after-bodyrOr�r�r�s  r)rXz-getPhases.<locals>.AfterBodyPhase.endTagOther

sC���K�K�"�"�#B�$*�E�&�M�#:�
<� $��� 2� 2�8� <�D�K�K���Lr*r�N)r@rArBr1rr�r�r�rrTr^rXr
rYr
rZrr�r*r)�AfterBodyPhaser��	s|���G�	�	�	F�
	�
	G�	�	I�	�2�&�1�1�
�\�"�3
���#0���/��/�/�&�*�1E�0F�G�
� +�
�r*r�c����eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Ze
jd	W�jfd
efdefde	fg�Ze
e_e
jd
efg�Zee_y
)�"getPhases.<locals>.InFramesetPhasec��|jjdjdk7r|jj	d�y|jj
sJ�y)Nr�r�zeof-in-framesetr�ros r)r�z-getPhases.<locals>.InFramesetPhase.processEOF
sE���y�y�%�%�b�)�.�.�&�8����&�&�'8�9��{�{�,�,�,�,r*c�:�|jjd�y)Nzunexpected-char-in-framesetrr�s  r)r�z4getPhases.<locals>.InFramesetPhase.processCharacters"
s���K�K�"�"�#@�Ar*c�:�|jj|�yr2)rIr�r�s  r)r�z3getPhases.<locals>.InFramesetPhase.startTagFrameset%
s���I�I�#�#�E�*r*c��|jj|�|jjj�yr2rgr�s  r)�
startTagFramez0getPhases.<locals>.InFramesetPhase.startTagFrame(
s*���I�I�#�#�E�*��I�I�"�"�&�&�(r*c�R�|jjdj|�SrMrNr�s  r)�startTagNoframesz3getPhases.<locals>.InFramesetPhase.startTagNoframes,
rOr*c�F�|jjdd|di�y)Nz unexpected-start-tag-in-framesetrOrr�s  r)rTz0getPhases.<locals>.InFramesetPhase.startTagOther/
r?r*c��|jjdjdk(r|jj	d�n$|jjj�|jjsP|jjdjdk7r)|jjd|j_yyy)Nr�r�z)unexpected-frameset-in-frameset-innerhtmlr��
afterFrameset)	rIr�rOrSr�rr[rLrir�s  r)�endTagFramesetz1getPhases.<locals>.InFramesetPhase.endTagFrameset3
s����y�y�%�%�b�)�.�.�&�8����&�&�'R�S��	�	�&�&�*�*�,��K�K�)�)��I�I�*�*�2�.�3�3�z�A�%)�K�K�$6�$6��$G����!�B�*r*c�F�|jjdd|di�y)Nzunexpected-end-tag-in-framesetrOrr�s  r)rXz.getPhases.<locals>.InFramesetPhase.endTagOther?
rwr*r�r�r�r�N)r@rArBr1rr�r�r�rrrTrrXr
rYrr
rZrr�s�r)�InFramesetPhaser
s�����G�	�	-�	B�	+�	)�	G�	<�
	H�	<�2�&�1�1�
�U�'�'�(�
�)�*�
�m�$�
�)�*�	3
���#0���/��/�/�
��(�1
��
�!,�
�r*r
c����eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
ejdW�jfdefg�Zee_ejde	fg�Ze
e_y	)
�%getPhases.<locals>.AfterFramesetPhasec��yr2r�ros r)r�z0getPhases.<locals>.AfterFramesetPhase.processEOFT
r�r*c�:�|jjd�y)Nzunexpected-char-after-framesetrr�s  r)r�z7getPhases.<locals>.AfterFramesetPhase.processCharactersX
s���K�K�"�"�#C�Dr*c�R�|jjdj|�Sr�rNr�s  r)rz6getPhases.<locals>.AfterFramesetPhase.startTagNoframes[
rOr*c�F�|jjdd|di�y)Nz#unexpected-start-tag-after-framesetrOrr�s  r)rTz3getPhases.<locals>.AfterFramesetPhase.startTagOther^
s#���K�K�"�"�#H�$*�E�&�M�#:�
<r*c�T�|jjd|j_y)N�afterAfterFrameset)rSrLrir�s  r)r^z0getPhases.<locals>.AfterFramesetPhase.endTagHtmlb
s�� $��� 2� 2�3G� H�D�K�K�r*c�F�|jjdd|di�y)Nz!unexpected-end-tag-after-framesetrOrr�s  r)rXz1getPhases.<locals>.AfterFramesetPhase.endTagOthere
s#���K�K�"�"�#F�$*�E�&�M�#:�
<r*r�r�N)r@rArBr1rr�r�rrTr^rXr
rYrr
rZrr�s�r)�AfterFramesetPhaserP
s�����G�	�	�	E�	G�	<�	I�	<�2�&�1�1�
�U�'�'�(�
�)�*�3
���#0���/��/�/�
�Z� �1
��
�!,�
�r*rc�|�eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zejde	fg�Ze
e_y	)
�&getPhases.<locals>.AfterAfterBodyPhasec��yr2r�ros r)r�z1getPhases.<locals>.AfterAfterBodyPhase.processEOFw
rr*c�d�|jj||jj�yr2r r�s  r)r�z5getPhases.<locals>.AfterAfterBodyPhase.processCommentz
r"r*c�R�|jjdj|�SrMr�r�s  r)r�z=getPhases.<locals>.AfterAfterBodyPhase.processSpaceCharacters}
r�r*c��|jjd�|jjd|j_|S)N�expected-eof-but-got-charr�r�r�s  r)r�z8getPhases.<locals>.AfterAfterBodyPhase.processCharacters�
s5���K�K�"�"�#>�?� $��� 2� 2�8� <�D�K�K���Lr*c�R�|jjdj|�SrMrNr�s  r)rz3getPhases.<locals>.AfterAfterBodyPhase.startTagHtml�
rOr*c��|jjdd|di�|jjd|j_|S)N�expected-eof-but-got-start-tagrOr�r�r�s  r)rTz4getPhases.<locals>.AfterAfterBodyPhase.startTagOther�
sC���K�K�"�"�#C�$*�E�&�M�#:�
<� $��� 2� 2�8� <�D�K�K���Lr*c��|jjdd|di�|jjd|j_|S)N�expected-eof-but-got-end-tagrOr�r�r�s  r)r�z4getPhases.<locals>.AfterAfterBodyPhase.processEndTag�
sC���K�K�"�"�#A�$*�E�&�M�#:�
<� $��� 2� 2�8� <�D�K�K���Lr*r�N)r@rArBr1rr�r�r�r�rrTr�r
rYr
rZr�r*r)�AfterAfterBodyPhasert
sY���G�	�	�	?�	N�	�
	G�	�	�2�&�1�1�
�\�"�3
���#0��r*r$c��eZdZe�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Ze
jd	e	fd
e
fg�Zee_y)�*getPhases.<locals>.AfterAfterFramesetPhasec��yr2r�ros r)r�z5getPhases.<locals>.AfterAfterFramesetPhase.processEOF�
rr*c�d�|jj||jj�yr2r r�s  r)r�z9getPhases.<locals>.AfterAfterFramesetPhase.processComment�
r"r*c�R�|jjdj|�SrMr�r�s  r)r�zAgetPhases.<locals>.AfterAfterFramesetPhase.processSpaceCharacters�
r�r*c�:�|jjd�y)Nrrr�s  r)r�z<getPhases.<locals>.AfterAfterFramesetPhase.processCharacters�
s���K�K�"�"�#>�?r*c�R�|jjdj|�SrMrNr�s  r)rz7getPhases.<locals>.AfterAfterFramesetPhase.startTagHtml�
rOr*c�R�|jjdj|�Sr�rNr�s  r)�startTagNoFramesz;getPhases.<locals>.AfterAfterFramesetPhase.startTagNoFrames�
rOr*c�F�|jjdd|di�y)Nr!rOrr�s  r)rTz8getPhases.<locals>.AfterAfterFramesetPhase.startTagOther�
rwr*c�F�|jjdd|di�y)Nr#rOrr�s  r)r�z8getPhases.<locals>.AfterAfterFramesetPhase.processEndTag�
r�r*r�r�N)r@rArBr1rr�r�r�r�rr-rTr�r
rYr
rZr�r*r)�AfterAfterFramesetPhaser&�
si���G�	�	�	?�	N�	@�	G�	G�	<�	<�2�&�1�1�
�\�"�
�)�*�3
���#0��r*r0r`r_r�rQr{r�r�r�r�r�r�r�r�r�r�r�rD)r�r[r�r
r�r)r)rNrbr�r2rBr[r�r�r�r�r�rr%rCrXrhr�r�r�r�r
rr$r0r�r�rs                        @@@r)rKrK�sY����*�F��|�E�3�7�8�F�P@�u�@�D#�%�#�J+,�%�+,�Zd,�e�d,�L=,�e�=,�~@,��@,�DR,�e�R,�h,�E�,�BO,�u�O,�b-�5�-�^D,��D,�L>,�U�>,�@`,�5�`,�DW,�U�W,�rJ,�e�J,�Xa,��a,�F$,�u�$,�Lp��p�d,,��,,�\6,�%�6,�p",�U�",�H#0�e�#0�J!0�%�!0�J��<���o��	�o��	�+�	�
	�-��	�^�
�	�+��	�	��	�<��	�'��	�^��	�+��	�'��	���	�+�� 	�M�!�"	�/�#�$2�#�%�+�-�5�/�r*c���t|d�t��z}|r2t|d��fd�|dj�D��|d<yy)Nr�c3�L�K�|]\}}�j||�|f���y�wr2)r�)r��k�vr�s   �r)r�z$adjust_attributes.<locals>.<genexpr>�
s1�����,O�04��1�.:�-=�-=�a��-C�Q�,G�,O�s�!$)rr7r3)r�r��needs_adjustments ` r)r�r��
sZ�����f�
�.��,�1G�G���+��U�6�]�+�,O�8=�f�
�8K�8K�8M�,O�O��f�
�r*c�&�|�i}t||||d�S)N)r7rOr�r�)r)rOr7ryr�s    r)r7r7�
s&�����
��t�$�d�J�&�(�(r*c��eZdZdZy)r�zError in parsed documentN)r@rArBr�r�r*r)r�r��
s��"�r*r�)rGT)r�rGT)r�NF),�
__future__rrr�sixrrr5r'r	r
r�treebuilders.baserr
�	constantsrrrrrrrrrrrrr�rrrrr#r-rDr�r"�memoizerKr�r7�	Exceptionr�r�r*r)�<module>r>s���B�B�(�����%��
�
�
�
�
�"�.?�2	�s)��s)�l	���J%��J%�ZJO�59� %�(�	��	r*

Youez - 2016 - github.com/yon3zu
LinuXploit