403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.25
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/html5lib/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/html5lib/__pycache__/_inputstream.cpython-311.pyc
�

V=�^,~����ddlmZmZmZddlmZddlmZmZddl	Z	ddl
Z
ddlmZm
Z
ddlZddlmZmZmZmZddlmZdd	lmZed
�eD����Zed�eD����Zed�eD����Zeed
dg��zZdZejrOeddkre�d��dksJ�e
jedd�e d��zdz��Z!ne
je��Z!hd�Z"e
jd��Z#iZ$Gd�de%��Z&d�Z'Gd�de%��Z(Gd�de(��Z)Gd�de*��Z+Gd�de%��Z,Gd �d!e%��Z-d"�Z.dS)#�)�absolute_import�division�unicode_literals)�	text_type)�http_client�urllibN)�BytesIO�StringIO�)�EOF�spaceCharacters�asciiLetters�asciiUppercase)�_ReparseException)�_utilsc�8�g|]}|�d����S��ascii��encode��.0�items  �7/usr/lib/python3/dist-packages/html5lib/_inputstream.py�
<listcomp>rs$��!S�!S�!S�4�$�+�+�g�"6�"6�!S�!S�!S�c�8�g|]}|�d����Srrrs  rrrs$��M�M�M��t�{�{�7�3�3�M�M�Mrc�8�g|]}|�d����Srrrs  rrrs$�� Q� Q� Q�$����W�!5�!5� Q� Q� Qr�>�<u�[---Ÿ﷐-﷯￾￿🿾🿿𯿾𯿿𿿾𿿿񏿾񏿿񟿾񟿿񯿾񯿿񿿾񿿿򏿾򏿿򟿾򟿿򯿾򯿿򿿾򿿿󏿾󏿿󟿾󟿿󯿾󯿿󿿾󿿿􏿾􏿿]����]z"\uD800-\uDFFF"> ���������	�
���
������������	�
���
���z[	-
 -/:-@\[-`{-~]c�<�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	S)
�BufferedStreamz�Buffering for streams that do not have buffering of their own

    The buffer is implemented as a list of chunks on the assumption that
    joining many strings will be slow since it is O(n**2)
    c�4�||_g|_ddg|_dS)Nr!r)�stream�buffer�position)�selfrFs  r�__init__zBufferedStream.__init__:s���������Q���
�
�
rc��d}|jd|jd�D]}|t|��z
}�||jdz
}|S�Nrr)rGrH�len)rI�pos�chunks   r�tellzBufferedStream.tell?sR�����[�!2�$�-��"2�!2�3�	�	�E��3�u�:�:��C�C��t�}�Q�����
rc��||���ksJ�|}d}t|j|��|kr@|t|j|��z}|dz
}t|j|��|k�@||g|_dSrL)�_bufferedBytesrMrGrH)rIrN�offset�is    r�seekzBufferedStream.seekFs����d�)�)�+�+�+�+�+�+���
���$�+�a�.�!�!�F�*�*��c�$�+�a�.�)�)�)�F�
��F�A��$�+�a�.�!�!�F�*�*��F���
�
�
rc�&�|js|�|��S|jdt|j��kr>|jdt|jd��kr|�|��S|�|��S)Nrrr!)rG�_readStreamrHrM�_readFromBuffer�rI�bytess  r�readzBufferedStream.readOs����{�	/��#�#�E�*�*�*��m�A��#�d�k�"2�"2�2�2��m�A��#�d�k�"�o�"6�"6�6�6��#�#�E�*�*�*��'�'��.�.�.rc�>�td�|jD����S)Nc�,�g|]}t|����S�)rMrs  rrz1BufferedStream._bufferedBytes.<locals>.<listcomp>Ys��6�6�6�$�C��I�I�6�6�6r)�sumrG�rIs rrRzBufferedStream._bufferedBytesXs!���6�6�$�+�6�6�6�7�7�7rc���|j�|��}|j�|��|jdxxdz
cc<t|��|jd<|SrL)rFr[rG�appendrHrM)rIrZ�datas   rrWzBufferedStream._readStream[sb���{����&�&������4� � � ��
�a����A������t�9�9��
�a���rc�P�|}g}|jd}|jd}|t|j��kr�|dkr�|dksJ�|j|}|t|��|z
kr|}|||zg|_n-t|��|z
}|t|��g|_|dz
}|�||||z���||z}d}|t|j��kr|dk��|r(|�|�|����d�|��S)Nrrr)rHrMrGrbrW�join)rIrZ�remainingBytes�rv�bufferIndex�bufferOffset�bufferedData�bytesToReads        rrXzBufferedStream._readFromBufferbsK����
���m�A�&���}�Q�'���C���,�,�,�,��1�1D�1D�!�A�%�%�%�%��;�{�3�L���\�!2�!2�\�!A�A�A�,��!,�l�[�.H� I��
�
�!�,�/�/�,�>��!,�c�,�.?�.?� @��
��q� ���I�I�l�<��{�0J�#J�K�L�L�L��k�)�N��L��C���,�,�,�,��1�1D�1D� �	8��I�I�d�&�&�~�6�6�7�7�7��x�x��|�|�rN)�__name__�
__module__�__qualname__�__doc__rJrPrUr[rRrWrXr^rrrDrD3s��������� � � �
���$�$�$�/�/�/�8�8�8��������rrDc���t|tj��s>t|tjj��r"t|jtj��rd}nNt|d��r)t|�d��t��}nt|t��}|r-d�|D��}|rtd|z���t|fi|��St|fi|��S)NFr[rc�<�g|]}|�d���|��S)�	_encoding)�endswith)r�xs  rrz#HTMLInputStream.<locals>.<listcomp>�s)��B�B�B�1�!�*�*�[�*A�*A�B�Q�B�B�Brz3Cannot set an encoding with a unicode input, set %r)
�
isinstancer�HTTPResponser�response�addbase�fp�hasattrr[r�	TypeError�HTMLUnicodeInputStream�HTMLBinaryInputStream)�source�kwargs�	isUnicode�	encodingss    r�HTMLInputStreamr�}s���	�6�;�3�4�4�2�	�F�F�O�3�	4�	4�2�
�F�I�{�7�	8�	8�2��	�	�	���	 �	 �2��v�{�{�1�~�~�y�9�9�	�	��v�y�1�1�	��7�B�B��B�B�B�	��	_��Q�T]�]�^�^�^�%�f�7�7��7�7�7�$�V�6�6�v�6�6�6rc�\�eZdZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
dd
�Zd�Zd�Z
dd�Zd�Zd	S)r|��Provides a unicode stream of characters to the HTMLTokenizer.

    This class takes care of character encoding and removing or replacing
    incorrect byte-sequences and also provides column and line tracking.

    i(c��tjsd|_n,td��dkr
|j|_n|j|_dg|_td��df|_|�	|��|_
|���dS)�Initialises the HTMLInputStream.

        HTMLInputStream(source, [encoding]) -> Normalized stream from source
        for use by html5lib.

        source can be either a file-object, local filename or a string.

        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)

        Nu􏿿rr�utf-8�certain)r�supports_lone_surrogates�reportCharacterErrorsrM�characterErrorsUCS4�characterErrorsUCS2�newLines�lookupEncoding�charEncoding�
openStream�
dataStream�reset)rIr~s  rrJzHTMLUnicodeInputStream.__init__�s����.�	B�*.�D�&�&�
��
�
�!�
#�
#�)-�)A�D�&�&�)-�)A�D�&����
�+�G�4�4�i�@����/�/�&�1�1����
�
�����rc�h�d|_d|_d|_g|_d|_d|_d|_dS)N�r)rO�	chunkSize�chunkOffset�errors�prevNumLines�prevNumCols�_bufferedCharacterr`s rr�zHTMLUnicodeInputStream.reset�sA����
����������������#'����rc�J�t|d��r|}nt|��}|S�zvProduces a file object from source.

        source can be either a file object, local filename or a string.

        r[)rzr
�rIr~rFs   rr�z!HTMLUnicodeInputStream.openStream�s/���6�6�"�"�	&��F�F��f�%�%�F��
rc��|j}|�dd|��}|j|z}|�dd|��}|dkr|j|z}n||dzz
}||fS)N�
rr!r)rO�countr��rfindr�)rIrSrO�nLines�positionLine�lastLinePos�positionColumns       r�	_positionz HTMLUnicodeInputStream._position�ss���
�����T�1�f�-�-���(�6�1���k�k�$��6�2�2���"���!�-��6�N�N�#�{�Q��7�N��n�-�-rc�J�|�|j��\}}|dz|fS)z:Returns (line, col) of the current position in the stream.r)r�r�)rI�line�cols   rrHzHTMLUnicodeInputStream.position�s(���N�N�4�#3�4�4�	��c��q��#��rc��|j|jkr|���stS|j}|j|}|dz|_|S)zo Read one character from the stream or queue if available. Return
            EOF when EOF is reached.
        r)r�r��	readChunkrrO)rIr��chars   rr�zHTMLUnicodeInputStream.char�sP��
��t�~�-�-��>�>�#�#�
��
��&���z�+�&��&��?����rNc�n�|�|j}|�|j��\|_|_d|_d|_d|_|j�|��}|j	r|j	|z}d|_	n|sdSt|��dkrBt|d��}|dksd|cxkrdkrnn|d|_	|dd�}|jr|�|��|�
d	d
��}|�
dd
��}||_t|��|_dS)
Nr�rFrr!�
��i��z
r��
T)�_defaultChunkSizer�r�r�r�rOr�r�r[r�rM�ordr��replace)rIr�rc�lastvs    rr�z HTMLUnicodeInputStream.readChunk�sL�����.�I�.2�n�n�T�^�.L�.L�+���4�+���
���������#�#�I�.�.���"�	��*�T�1�D�&*�D�#�#��	��5��t�9�9�q�=�=���R��M�M�E���}�}��%� 9� 9� 9� 9�6� 9� 9� 9� 9� 9�*.�r�(��'��C�R�C�y���%�	-��&�&�t�,�,�,��|�|�F�D�)�)���|�|�D�$�'�'����
��T������trc��ttt�|������D]}|j�d���dS)N�invalid-codepoint)�rangerM�invalid_unicode_re�findallr�rb)rIrc�_s   rr�z*HTMLUnicodeInputStream.characterErrorsUCS4sT���s�-�5�5�d�;�;�<�<�=�=�	4�	4�A��K���2�3�3�3�3�	4�	4rc�.�d}t�|��D]�}|r�t|�����}|���}tj|||dz���rEtj|||dz���}|tvr|j	�
d��d}��|dkr7|dkr1|t|��dz
kr|j	�
d����d}|j	�
d����dS)NF�r�Tr�i��r)r��finditerr��group�startr�isSurrogatePair�surrogatePairToCodepoint�non_bmp_invalid_codepointsr�rbrM)rIrc�skip�match�	codepointrN�char_vals       rr�z*HTMLUnicodeInputStream.characterErrorsUCS2#s'����'�0�0��6�6�	8�	8�E��
���E�K�K�M�M�*�*�I��+�+�-�-�C��%�d�3�s�Q�w�;�&7�8�8�
8�!�:�4��C�!�G��;L�M�M���9�9�9��K�&�&�':�;�;�;�����v�%�%�)�v�*=�*=���T���Q��&�&���"�"�#6�7�7�7�7�����"�"�#6�7�7�7�7�#	8�	8rFc��	t||f}nt#t$rg	|D]}t|��dksJ��d�d�|D����}|sd|z}t	jd|z��x}t||f<YnwxYwg}	|�|j|j��}|�|j|j	krn�nN|�
��}||j	kr/|�|j|j|���||_n=|�|j|jd���|���sn��d�|��}	|	S)z� Returns a string of characters from the stream up to but not
        including any character in 'characters' or EOF. 'characters' must be
        a container that supports the 'in' method and iteration over its
        characters.
        T�r�c�2�g|]}dt|��z��S)z\x%02x)r�)r�cs  rrz5HTMLUnicodeInputStream.charsUntil.<locals>.<listcomp>Hs#��D�D�D�A�Y��Q���/�D�D�Drz^%sz[%s]+N)
�charsUntilRegEx�KeyErrorr�re�re�compiler�rOr�r��endrbr�)
rI�
characters�opposite�charsr��regexrg�mr��rs
          r�
charsUntilz!HTMLUnicodeInputStream.charsUntil:s���		Z�#�Z��$:�;�E�E���	Z�	Z�	Z�
)�#�)�)�A��q�6�6�C�<�<�<�<�<��G�G�D�D��D�D�D�E�E�E��
&���
��>@�j��SX��>Y�>Y�Y�E�O�Z��$:�;�;�;�	Z������	����D�J��(8�9�9�A��y��#�t�~�5�5��6��e�e�g�g���$�.�(�(��I�I�d�j��)9�#�)=�>�?�?�?�'*�D�$��
�I�I�d�j��!1�!2�!2�3�4�4�4��>�>�#�#�
��+	�.
�G�G�B�K�K���s��A.B�Bc���|turT|jdkr!||jz|_|xjdz
c_dS|xjdzc_|j|j|ksJ�dSdSrL)rr�rOr�)rIr�s  r�ungetzHTMLUnicodeInputStream.ungetis}���s�?�?���1�$�$�"�D�J�.��
����!�#������ � �A�%� � ��z�$�"2�3�t�;�;�;�;��?�<�;r�N)F)rlrmrnror�rJr�r�r�rHr�r�r�r�r�r�r^rrr|r|�s��������������@'�'�'����	.�	.�	.����

�
�
�$�$�$�$�L4�4�4�8�8�8�.-�-�-�-�^<�<�<�<�<rr|c�F�eZdZdZ			dd�Zd�Zd�Zd
d�Zd	�Zd
�Z	d�Z
dS)r}r�N�windows-1252Tc�V�|�|��|_t�||j��d|_d|_||_||_||_||_	||_
|�|��|_|jd�J�|�
��dS)r�i�drN)r��	rawStreamr|rJ�numBytesMeta�numBytesChardet�override_encoding�transport_encoding�same_origin_parent_encoding�likely_encoding�default_encoding�determineEncodingr�r�)rIr~r�r�r�r�r��
useChardets        rrJzHTMLBinaryInputStream.__init__�s���$����0�0����'�'��d�n�=�=�=�
!���"���!2���"4���+F��(�.��� 0���!�2�2�:�>�>���� ��#�/�/�/�	
�
�
�����rc��|jdj�|jd��|_t
�|��dS)Nrr�)r��
codec_info�streamreaderr�r�r|r�r`s rr�zHTMLBinaryInputStream.reset�sA���+�A�.�9�F�F�t�~�W`�a�a����$�$�T�*�*�*�*�*rc���t|d��r|}nt|��}	|�|�����n#t$rt|��}YnwxYw|Sr�)rzr	rUrP�	ExceptionrDr�s   rr�z HTMLBinaryInputStream.openStream�s}���6�6�"�"�	%��F�F��V�_�_�F�	,��K�K����
�
�&�&�&�&���	,�	,�	,�#�F�+�+�F�F�F�	,�����
s�'A�A(�'A(c���|���df}|d�|St|j��df}|d�|St|j��df}|d�|S|���df}|d�|St|j��df}|d�"|dj�d��s|St|j��df}|d�|S|r�	ddl	m
}g}|��}|jsj|j�
|j��}t|t ��sJ�|sn1|�|��|�|��|j�j|���t|jd��}|j�d��|�|dfSn#t,$rYnwxYwt|j��df}|d�|Std��dfS)Nr�r�	tentativezutf-16)�UniversalDetector�encodingr�)�	detectBOMr�r�r��detectEncodingMetar��name�
startswithr��chardet.universaldetectorr��doner�r[r�rurZrb�feed�close�resultrU�ImportErrorr�)rI�chardetr�r��buffers�detectorrGr�s        rr�z'HTMLBinaryInputStream.determineEncoding�s_���~�~�'�'��2����?�&���&�d�&<�=�=�y�H����?�&���&�d�&=�>�>�	�I����?�&����.�.�0�0�+�=����?�&���&�d�&F�G�G��T����?�&�|�A��/C�/N�/N�x�/X�/X�&���&�d�&:�;�;�[�H����?�&����	1�
1�G�G�G�G�G�G���,�,�.�.��"�-�*�!�^�0�0��1E�F�F�F�%�f�e�4�4�4�4�4�!����N�N�6�*�*�*��M�M�&�)�)�)�
#�-�*���� � � �)�(�/�*�*E�F�F����#�#�A�&�&�&��'�#�[�0�0�(���
�
�
���
����&&�d�&;�<�<�k�I����?�&����n�-�-�{�:�:s�$F6�6
G�Gc��|jddksJ�t|��}|�dS|jdvrtd��}|�J�dS||jdkr|jddf|_dS|j�d��|df|_|���t
d|jd�d|�����)Nrr���utf-16be�utf-16ler�rzEncoding changed from z to )r�r�r�r�rUr�r)rI�newEncodings  r�changeEncodingz$HTMLBinaryInputStream.changeEncodings���� ��#�y�0�0�0�0�$�[�1�1�����F���7�7�7�(��1�1�K��*�*�*�*�*�
�D�-�a�0�
0�
0�!%�!2�1�!5�y� A�D�����N����"�"�"�!,�i� 8�D���J�J�L�L�L�#�#��HY�Z[�H\�H\�H\�^i�^i�$j�k�k�krc
� �tjdtjdtjdtjdtjdi}|j�d��}t|t��sJ�|�
|dd���}d}|s8|�
|��}d}|s|�
|dd	���}d	}|r)|j�|��t|��S|j�d
��dS)z�Attempts to detect at BOM at the start of the stream. If
        an encoding can be determined from the BOM return the name of the
        encoding otherwise return Noner�rrzutf-32lezutf-32be�N�r�r)
�codecs�BOM_UTF8�BOM_UTF16_LE�BOM_UTF16_BE�BOM_UTF32_LE�BOM_UTF32_BEr�r[rurZ�getrUr�)rI�bomDict�stringr�rUs     rr�zHTMLBinaryInputStream.detectBOMs
��

�O�W����V�-@�*����V�-@�*�
����$�$�Q�'�'���&�%�(�(�(�(�(��;�;�v�b�q�b�z�*�*�����	��{�{�6�*�*�H��D��
�"�;�;�v�b�q�b�z�2�2�����	��N����%�%�%�!�(�+�+�+��N����"�"�"��4rc� �|j�|j��}t|t��sJ�t|��}|j�d��|���}|�|jdvrtd��}|S)z9Report the encoding declared by the meta element
        rNr�r�)
r�r[r�rurZ�EncodingParserrU�getEncodingr�r�)rIrG�parserr�s    rr�z(HTMLBinaryInputStream.detectEncodingMeta3s�����$�$�T�%6�7�7���&�%�(�(�(�(�(���'�'������A�����%�%�'�'����H�M�5M�$M�$M�%�g�.�.�H��r)NNNNr�T)T)rlrmrnrorJr�r�r�rr�r�r^rrr}r}zs���������KO�CG�=A�(�(�(�(�T+�+�+����&<;�<;�<;�<;�|l�l�l�  � � �D����rr}c��eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zeee
��Z
d
�Zee��Zefd�Zd�Zd
�Zd�ZdS)�
EncodingBytesz�String-like object with an associated position and various extra methods
    If the position is ever greater than the string length then an exception is
    raisedc��t|t��sJ�t�||�����Sr�)rurZ�__new__�lower�rI�values  rrzEncodingBytes.__new__Fs4���%��'�'�'�'�'��}�}�T�5�;�;�=�=�1�1�1rc��d|_dS)Nr!)r�rs  rrJzEncodingBytes.__init__Js
������rc��|Sr�r^r`s r�__iter__zEncodingBytes.__iter__Ns���rc��|jdzx}|_|t|��krt�|dkrt�|||dz�S)Nrr�r�rM�
StopIterationr{�rI�ps  r�__next__zEncodingBytes.__next__QsJ��!�^�a�/�/��D�N���D�	�	�>�>���
��U�U��O��A�a�!�e�G�}�rc�*�|���Sr�)r#r`s r�nextzEncodingBytes.nextYs���}�}���rc��|j}|t|��krt�|dkrt�|dz
x|_}|||dz�SrLrr!s  r�previouszEncodingBytes.previous]sN���N����D�	�	�>�>���
��U�U��O���U�"�����A�a�!�e�G�}�rc�R�|jt|��krt�||_dSr��r�rMr )rIrHs  r�setPositionzEncodingBytes.setPositionfs&���>�S��Y�Y�&�&���!����rc�h�|jt|��krt�|jdkr|jSdS)Nrr)r`s r�getPositionzEncodingBytes.getPositionks5���>�S��Y�Y�&�&����>�Q����>�!��4rc�0�||j|jdz�S�Nr)rHr`s r�getCurrentBytezEncodingBytes.getCurrentByteus���D�M�$�-�!�"3�3�4�4rc��|j}|t|��kr2|||dz�}||vr	||_|S|dz
}|t|��k�2||_dS)zSkip past a list of charactersrN�rHrMr��rIr�r"r�s    rr�zEncodingBytes.skipzsf���M���#�d�)�)�m�m��Q�q�1�u�W�
�A���~�~�!"�����
��F�A��#�d�)�)�m�m�����trc��|j}|t|��kr2|||dz�}||vr	||_|S|dz
}|t|��k�2||_dSr.r1r2s    r�	skipUntilzEncodingBytes.skipUntil�sf���M���#�d�)�)�m�m��Q�q�1�u�W�
�A��E�z�z�!"�����
��F�A��#�d�)�)�m�m�����trc�z�|�||j��}|r|xjt|��z
c_|S)z�Look for a sequence of bytes at the start of a string. If the bytes
        are found return True and advance the position to the byte after the
        match. Otherwise return False and leave the position alone)r�rHrM)rIrZrgs   r�
matchByteszEncodingBytes.matchBytes�s<���_�_�U�D�M�
2�
2��
�	(��M�M�S��Z�Z�'�M�M��	rc��	|�||j��t|��zdz
|_n#t$rt
�wxYwdS)z�Look for the next sequence of bytes matching a given sequence. If
        a match is found advance the position to the last byte of the matchrT)�indexrHrMr��
ValueErrorr rYs  r�jumpTozEncodingBytes.jumpTo�sV��	 �!�Z�Z��t�}�=�=��E�
�
�J�Q�N�D�N�N���	 �	 �	 ���	 �����ts	�36�AN)rlrmrnrorrJrr#r%r'r*r,�propertyrHr/�currentByte�spaceCharactersBytesr�r4r6r:r^rrrrBs
��������2�2�2����������������"�"�"�
����x��[�1�1�H�5�5�5��(�>�*�*�K�-�
�
�
�
�	�	�	��������rrc�H�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)rz?Mini parser for detecting character encoding from meta elementsc�<�t|��|_d|_dS)z3string - the data to work on for encoding detectionN)rrcr��rIrcs  rrJzEncodingParser.__init__�s��!�$�'�'��	���
�
�
rc��d|jvrdSd|jfd|jfd|jfd|jfd|jfd|jff}|jD]w}d}	|j�d��n#t$rYnKwxYw|D]?\}}|j�|��r 	|��}n#t$rd}YnwxYw�@|sn�x|j	S)	Ns<metas<!--s</s<!s<?r TF)
rc�
handleComment�
handleMeta�handlePossibleEndTag�handleOther�handlePossibleStartTagr:r r6r�)rI�methodDispatchr��keepParsing�key�methods      rrzEncodingParser.getEncoding�s@���4�9�$�$��4��d�(�)�
�t��'�
�D�-�.�
�D�$�%�
�D�$�%�
�4�.�/�
1����	�	�A��K�
��	� � ��&�&�&�&�� �
�
�
����
����-�
�
���V��9�'�'��,�,���&,�f�h�h�����(����&+���������	��
���
��}�s$�
A%�%
A3�2A3�
B$�$B4�3B4c�6�|j�d��S)zSkip over commentss-->�rcr:r`s rrBzEncodingParser.handleComment�s���y����'�'�'rc���|jjtvrdSd}d}	|���}|�dS|ddkr|ddk}|r|�	||_dSn�|ddkr#|d}t|��}|�	||_dSnb|ddkrVt
t|d����}|���}|�t|��}|�
|r	||_dS|}��)	NTFrs
http-equivrscontent-type�charsetscontent)	rcr<r=�getAttributer�r��ContentAttrParserr�parse)rI�	hasPragma�pendingEncoding�attr�tentativeEncoding�codec�
contentParsers       rrCzEncodingParser.handleMeta�s+���9� �(<�<�<��4��	���	8��$�$�&�&�D��|��t���7�m�+�+� $�Q��?� :�I� �%�_�%@�(7��
�$�u���!�W�
�*�*�(,�Q��%�*�+<�=�=�E��(�(-��
�$�u�)��!�W�
�*�*�$5�m�D��G�6L�6L�$M�$M�M�(5�(;�(;�(=�(=�%�(�4� .�/@� A� A�� �,�(�8�05��
�',�u�27��7	8rc�,�|�d��S)NF)�handlePossibleTagr`s rrFz%EncodingParser.handlePossibleStartTag�s���%�%�e�,�,�,rc�T�t|j��|�d��S)NT)r%rcrYr`s rrDz#EncodingParser.handlePossibleEndTag�s#���T�Y�����%�%�d�+�+�+rc�J�|j}|jtvr,|r(|���|���dS|�t��}|dkr|���n,|���}|�|���}|�dS)NTr )rcr<�asciiLettersBytesr'rEr4�spacesAngleBracketsrO)rI�endTagrcr�rTs     rrYz EncodingParser.handlePossibleTag�s����y����#4�4�4��
#��
�
����� � �"�"�"��4��N�N�.�/�/����9�9�
�M�M�O�O�O�O��$�$�&�&�D��"��(�(�*�*���"��trc�6�|j�d��S)NrrLr`s rrEzEncodingParser.handleOthers���y����%�%�%rc��|j}|�ttdg��z��}|�t	|��dksJ�|dvrdSg}g}	|dkr|rn�|tvr|���}nu|dvrd�|��dfS|tvr(|�|�����n|�dS|�|��t|��}��|dkr+|�
��d�|��dfSt|��|���}|d	vr�|}	t|��}||kr9t|��d�|��d�|��fS|tvr(|�|�����n|�|����|d
krd�|��dfS|tvr(|�|�����n|�dS|�|��	t|��}|tvr*d�|��d�|��fS|tvr(|�|�����n|�dS|�|����)z_Return a name,value pair for the next attribute in the stream,
        if one is found, or None�/Nr)rNT�=)rarr)�'�"r)rcr�r=�	frozensetrMre�asciiUppercaseBytesrbrr%r'r])rIrcr��attrName�	attrValue�	quoteChars      rrOzEncodingParser.getAttributes����y���I�I�*�Y��v�->�->�>�?�?���y�C��F�F�a�K�K�K�K������4����	�	��D�y�y�X�y���*�*�*��I�I�K�K����l�"�"��x�x��)�)�3�.�.��)�)�)�������	�	�*�*�*�*����t�����"�"�"��T�
�
�A�!	�$
��9�9��M�M�O�O�O��8�8�H�%�%�s�*�*��T�
�
�
��I�I�K�K�������I�
(���J�J���	�>�>���J�J�J��8�8�H�-�-�s�x�x�	�/B�/B�B�B��-�-�-��$�$�Q�W�W�Y�Y�/�/�/�/��$�$�Q�'�'�'�
(��$�Y�Y��8�8�H�%�%�s�*�*�
�%�
%�
%����Q�W�W�Y�Y�'�'�'�'�
�Y��4����Q����		$��T�
�
�A��'�'�'��x�x��)�)�3�8�8�I�+>�+>�>�>��)�)�)�� � ������+�+�+�+����t�� � ��#�#�#�		$rN)
rlrmrnrorJrrBrCrFrDrYrErOr^rrrr�s�������I�I����
���<(�(�(�"8�"8�"8�H-�-�-�,�,�,����.&�&�&�J$�J$�J$�J$�J$rrc��eZdZd�Zd�ZdS)rPc�B�t|t��sJ�||_dSr�)rurZrcr@s  rrJzContentAttrParser.__init__as#���$��&�&�&�&�&���	�	�	rc���	|j�d��|jxjdz
c_|j���|jjdksdS|jxjdz
c_|j���|jjdvrb|jj}|jxjdz
c_|jj}|j�|��r|j||jj�SdS|jj}	|j�t��|j||jj�S#t$r|j|d�cYSwxYw#t$rYdSwxYw)NrNrrb)rdrc)rcr:rHr�r<r4r=r )rI�	quoteMark�oldPositions   rrQzContentAttrParser.parsees���	�
�I���Z�(�(�(��I���!�#����I�N�N�����9�(�D�0�0��t��I���!�#����I�N�N�����y�$��4�4� �I�1�	��	�"�"�a�'�"�"�"�i�0���9�#�#�I�.�.� ��9�[���1C�%C�D�D��4�#�i�0��3��I�'�'�(<�=�=�=��9�[���1C�%C�D�D��$�3�3�3��9�[�\�\�2�2�2�2�3������	�	�	��4�4�	���s=�AE�BE�:E�7D?�?E�E�E�E�
E,�+E,N)rlrmrnrJrQr^rrrPrP`s2�������������rrPc���t|t��r(	|�d��}n#t$rYdSwxYw|�&	t	j|��S#t$rYdSwxYwdS)z{Return the python codec name corresponding to an encoding or None if the
    string doesn't correspond to a valid encoding.rN)rurZ�decode�UnicodeDecodeError�webencodings�lookup�AttributeError)r�s rr�r��s����(�E�"�"��	����w�/�/�H�H��!�	�	�	��4�4�	������	��&�x�0�0�0���	�	�	��4�4�	�����ts�-�
;�;�A�
A#�"A#)/�
__future__rrr�sixr�	six.movesrrrr��ior	r
rr�	constantsrr
rrrr�rrer=r\rfr]�invalid_unicode_no_surrogater�r�r��evalr�r��ascii_punctuation_rer��objectrDr�r|r}rZrrrPr�r^rr�<module>r~s_��B�B�B�B�B�B�B�B�B�B�������)�)�)�)�)�)�)�)�
�
�
�
�	�	�	�	� � � � � � � � �����I�I�I�I�I�I�I�I�I�I�I�I�(�(�(�(�(�(�������!�y�!S�!S�?�!S�!S�!S�T�T���I�M�M��M�M�M�N�N���i� Q� Q�.� Q� Q� Q�R�R��*�Y�Y��d�|�-D�-D�D�� j��	�"�
B�
(��+�s�2�2�7S�7Y�7Y�Z]�7^�7^�bc�7c�7c�7c�7c�#���$@��"��$E�$(�D�)<�$=�$=�%>�$'�%(�)�)���$���$@�A�A��2�2�2��"�r�z�"m�n�n����G�G�G�G�G�V�G�G�G�T7�7�7�.c<�c<�c<�c<�c<�V�c<�c<�c<�LE�E�E�E�E�2�E�E�E�P_�_�_�_�_�E�_�_�_�Dy$�y$�y$�y$�y$�V�y$�y$�y$�x$�$�$�$�$��$�$�$�N����r

Youez - 2016 - github.com/yon3zu
LinuXploit