Your IP : 3.16.78.90


Current Path : /opt/alt/python313/lib64/python3.13/xml/dom/__pycache__/
Upload File :
Current File : //opt/alt/python313/lib64/python3.13/xml/dom/__pycache__/minidom.cpython-313.pyc

�

2}g���SrSSKrSSKrSSKJrJrJrJr SSK7 SSK	J
r
Jr \RRR\RRR4r"SS\RR5r
\"\
SS	S
9 \"\
SSS
9 \"\
S
SS
9 SrSrSrSrSr"SS\
5r"SS\
5r\"\SSS
9 \"\S
SS
9 \"\SSS
9 "SS\5r\"\SS S
9 \r"S!S"\5r\"SS5r"S#S$\
5r\"\S%S&S
9 \"\S
S'S
9 S(r"S)S*5r "S+S,\ \
5r!"S-S.\ \
5r"\"\"SS/S
9 "S0S1\"5r#\"\#S2S3S
9 \"\#S4S5S
9 S6r$S7r%"S8S9\"5r&"S:S;\#5r'"S<S=\5r(\"\(SS>S
9 "S?S@5r)"SASB\)\ \
5r*"SCSD\)\
5r+"SESF\)\ \
5r,"SGSH\
5r-"SISJ\5r.SKr/"SLSM\
\5r0\"\0SNSOS
9 SPr1SQr2SRr3SVSSjr4SWSTjr5SWSUjr6g)XacSimple implementation of the Level 1 DOM.

Namespaces and other minor Level 2 features are also supported.

parse("foo.xml")

parseString("<foo><bar/></foo>")

Todo:
=====
 * convenience methods for getting elements and text.
 * more testing
 * bring some of the writer and linearizer code into conformance with this
        interface
 * SAX 2 namespaces
�N)�EMPTY_NAMESPACE�EMPTY_PREFIX�XMLNS_NAMESPACE�domreg)�*)�DOMImplementationLS�
DocumentLSc���\rSrSrSrSrSrSrSr\	r
SrSSjrSSjr
SrSrSrS	rS
rSrSrS
rSrSrSrSrSrSrSrSrSrSrSr Sr!Sr"g)�Node�"Nc��g)NT���selfs �6/opt/alt/python313/lib64/python3.13/xml/dom/minidom.py�__bool__�
Node.__bool__+����c�(�URSSX5$�N�)�toprettyxml)r�encoding�
standalones   r�toxml�
Node.toxml.s������B��=�=rc�v�Uc[R"5nO*[R"[R"5USSS9nUR[
R:XaURUSXX45 OURUSX5 UcUR5$UR5R5$)N�xmlcharrefreplace�
)r�errors�newliner)
�io�StringIO�
TextIOWrapper�BytesIO�nodeTyper�
DOCUMENT_NODE�writexml�getvalue�detach)r�indent�newlrr�writers      rr�Node.toprettyxml1s������[�[�]�F��%�%�b�j�j�l�/7�-@�.2�4�F��=�=�D�.�.�.��M�M�&�"�f�H�I��M�M�&�"�f�3����?�?�$�$��=�=�?�+�+�-�-rc�,�[UR5$�N)�bool�
childNodesrs r�
hasChildNodes�Node.hasChildNodesDs���D�O�O�$�$rc��UR$r1�r3rs r�_get_childNodes�Node._get_childNodesG������rc�D�UR(aURS$g�Nrr7rs r�_get_firstChild�Node._get_firstChildJs���?�?��?�?�1�%�%�rc�D�UR(aURS$g�N���r7rs r�_get_lastChild�Node._get_lastChildNs���?�?��?�?�2�&�&�rc�:�URUR:Xa/[UR5HnUR	X25 M U$URUR
;a8[RR[U5<S[U5<35eURbURRU5 UcURU5 U$URRU5nUR[ ;a[#U5 URR%XA5 X!lXlU(aURUS-
nXlXQlOSUlXl
U$![a [RR5ef=f)N� cannot be child of �)r'�DOCUMENT_FRAGMENT_NODE�tupler3�insertBefore�_child_node_types�xml�dom�HierarchyRequestErr�repr�
parentNode�removeChild�appendChild�index�
ValueError�NotFoundErr�_nodeTypes_with_children�_clear_id_cache�insert�nextSibling�previousSibling)r�newChild�refChild�crR�nodes      rrI�Node.insertBeforeRs`������ ;� ;�;��8�.�.�/���!�!�!�.�0��O����D�$:�$:�:��'�'�-�-�.2�8�n�d�4�j�I�K�
K����*����+�+�H�5������X�&�$��!
,����-�-�h�7��� � �$<�<���%��O�O�"�"�5�3�#+� �'/�$�����u�Q�w�/��#+� �+/�(�+/��(�"&������
,��g�g�)�)�+�+�
,�s�E1�1)Fc���URUR:Xa/[UR5HnUR	U5 M U$URUR
;a8[RR[U5<S[U5<35eUR[;a[U5 URbURRU5 [X5 SUlU$�NrE)r'rGrHr3rQrJrKrLrMrNrUrVrOrP�
_append_childrX)rr]r\s   rrQ�Node.appendChildrs����=�=�D�7�7�7��4�?�?�+��� � ��#�,��K��=�=�� 6� 6�6��'�'�-�-�.2�4�j�$�t�*�E�G�
G�
�]�]�6�
6��D�!��?�?�&��O�O�'�'��-��d�!�����rc��URUR:Xa.URnURU5 UR	X5$URUR
;a8[RR[U5<S[U5<35eXLagURbURRU5 URRU5nXRU'Xl
SUl
UR[;dUR[;a[!U5 URUlUR"UlSUlSUlUR"(aXR"lUR(aXRlU$![a [RR5ef=fr`)r'rGrXrPrIrJrKrLrMrNrOr3rRrSrTrUrVrY)rrZ�oldChildr[rRs     r�replaceChild�Node.replaceChild�s������� ;� ;�;��+�+�H����X�&��$�$�X�8�8����D�$:�$:�:��'�'�-�-�.2�8�n�d�4�j�I�K�
K�������*����+�+�H�5�	(��O�O�)�)�(�3�E�"*�����"��"������!9�9�� � �$<�<��D�!�'�3�3���#+�#;�#;�� �#���#'�� ��#�#�3;�$�$�0����3;� � �0����!�	(��'�'�%�%�'�'�	(�s�	F&�&)Gc��URRU5 URbURURlURbURURlS=UlUlUR[;a[U5 SUlU$![a [RR5ef=fr1)r3�removerSrKrLrTrXrYr'rUrVrO�rrds  rrP�Node.removeChild�s���	(��O�O�"�"�8�,����+�3;�3K�3K�H� � �0��#�#�/�3;�3G�3G�H�$�$�0�:>�>���x�7���� 8�8��D�!�"�������	(��'�'�%�%�'�'�	(�s�B#�#)Cc�$�/nURGHonUR[R:XGa
UR(dYU(aUR
USlUR
(aURUR
lUR5 M�U(a�USRUR:XahUSnURUR-UlUR
UlUR
(aX2R
lUR5 GMURU5 GM-URU5 UR[R:XdGM_UR5 GMr XRSS&gr@)r3r'r�	TEXT_NODE�datarXrY�unlink�append�ELEMENT_NODE�	normalize)r�L�childr]s    rrq�Node.normalize�s�����_�_�E��~�~����/��z�z��,1�,=�,=��"��)��(�(�<A�<Q�<Q��)�)�9��L�L�N��1�R�5�>�>�U�^�^�;��R�5�D� $�	�	�E�J�J� 6�D�I�',�'8�'8�D�$��(�(�<@�)�)�9��L�L�N��H�H�U�O�������>�>�T�%6�%6�6��O�O�%�-%�.����rc�@�[XUR=(d U5$r1)�_clone_node�
ownerDocument)r�deeps  r�	cloneNode�Node.cloneNode�s���4�t�'9�'9�'A�T�B�Brc�L�URRRX5$r1)rw�implementation�
hasFeature�r�feature�versions   r�isSupported�Node.isSupported�s���!�!�0�0�;�;�G�M�Mrc��gr1rrs r�_get_localName�Node._get_localName�s��rc��XL$r1r�r�others  r�
isSameNode�Node.isSameNode�s
���}�rc�6�URUS5(aU$gr1)r��rrs  r�getInterface�Node.getInterface�s�����G�T�*�*��K�rc�T�URUS$![[4a gf=fr<)�
_user_data�AttributeError�KeyError�r�keys  r�getUserData�Node.getUserData�s2��	��?�?�3�'��*�*����)�	��	�s��'�'c��SnURnX;aXQSnUc	SnUbXQ	U$X#4XQ'U$![a 0nXPlN3f=fr<)r�r�)rr�rm�handler�old�ds      r�setUserData�Node.setUserData�sm����	 ����A��8��&��)�C��<��G����F��
��_�A�F��
���	 ��A��O�	 �s�/�A�Ac��[US5(aH[URR55H unupVUcM
UR	XXRU5 M" gg)Nr�)�hasattr�listr��items�handle)r�	operation�src�dstr�rmr�s       r�_call_user_data_handler�Node._call_user_data_handler�sN���4��&�&�(,�T�_�_�-B�-B�-D�(E�$��_�d��&��N�N�9�4�c�B�)F�'rc���S=UlUlUR(a2URHnUR5 M [	5UlSUlSUlgr1)rOrwr3rn�NodeListrYrX)rrss  rrn�Node.unlinksH��/3�3���$�,��?�?���������)�&�j�D�O�#�����rc��U$r1rrs r�	__enter__�Node.__enter__s���rc�$�UR5 gr1)rn)r�et�ev�tbs    r�__exit__�
Node.__exit__s�����
r)r�r3rXrwrOrY�NN)�	r NN)#�__name__�
__module__�__qualname__�__firstlineno__�namespaceURIrOrwrXrYr�prefixrrrr4r8r=rBrIrQrerPrqryr�r�r�r�r�r�r�rnr�r��__static_attributes__rrrrr"s����L��J��M��K��O�
�F��>�<@�#�.�&%��&�'��@�"�@� �6C�N������$C� ��rr�
firstChildzFirst child node, or None.)�doc�	lastChildzLast child node, or None.�	localNamez"Namespace-local name of this node.c�z�URnU(aUSnX1lXlURU5 Xlgr@)r3rYrXrorO)rr]r3�lasts    rraras6�����J���"�~��#�������d���Orc�j�Ub0UR[R:XagURnUbM0g�NTF)r'rr(rO�r]s r�_in_documentr�'s3��
�
��=�=�D�.�.�.�������
�rc��U(dgSU;aURSS5nSU;aURSS5nSU;aURSS5nU(a`SU;aURSS	5nS
U;aURS
S5nSU;aURSS
5nSU;aURSS5nURU5 g)zWrites datachars to writer.N�&z&amp;�<z&lt;�>z&gt;�"z&quot;�
z&#13;r z&#10;r�z&#9;)�replace�write)r.�text�attrs   r�_write_datar�/s������d�{��|�|�C��)��
�d�{��|�|�C��(��
�d�{��|�|�C��(����$�;��<�<��X�.�D��4�<��<�<��g�.�D��4�<��<�<��g�.�D��4�<��<�<��f�-�D�
�L�L��rc���URHTnUR[R:Xa'US:XdURU:XaURU5 [
X1U5 MV U$�Nr)r3r'rrp�tagNamero�_get_elements_by_tagName_helper)�parent�name�rcr]s    rr�r�FsR���!�!���=�=�D�-�-�-�
�S�[�D�L�L�D�0��I�I�d�O�'��B�7�	"�
�Irc��URHlnUR[R:XdM#US:XdURU:Xa'US:XdUR
U:XaUR
U5 [XAX#5 Mn U$r�)r3r'rrpr�r�ro�"_get_elements_by_tagName_ns_helper)r��nsURIr�r�r]s     rr�r�Nsg���!�!���=�=�D�-�-�-��c�!�T�^�^�y�%@��#���!2�!2�e�!;��	�	�$��.�t�I�J�"��Irc���\rSrSr\R
rSrSrSr	Sr
\R\R\R\R\R\R \R"4rSrSrg)�DocumentFragmentiWz#document-fragmentNc�"�[5Ulgr1)r�r3rs r�__init__�DocumentFragment.__init__es��"�*��rr7)r�r�r�r�rrGr'�nodeName�	nodeValue�
attributesrOrprl�CDATA_SECTION_NODE�ENTITY_REFERENCE_NODE�PROCESSING_INSTRUCTION_NODE�COMMENT_NODE�
NOTATION_NODErJr�r�rrrr�r�Wsk���*�*�H�#�H��I��J��J��*�*�����0�0��3�3��9�9��*�*��+�+�
-��%rr�c��\rSrSrSr\RrSrSr	Sr
\R\R4r
\SS4SjrSrSrSrS	r\"\\5=rrS
rSr\"\\5=rrSrS
r\"\\5rSrSrSr Sr!g)�Attrii)�_name�_valuer��_prefixr3�
_localNamerw�ownerElementNFc��SUlXlX lX@lUbX0l[5UlURR[55 gr1)	r�r�r�r�r�r�r3ro�Text)r�qNamer�r�r�s     rr��
Attr.__init__ssD�� ����
�(����� �'�O�"�*���	
�����t�v�&rc�z�UR$![a" URRSS5Ss$f=f�N�:rFrA)r�r�r��splitrs rr��Attr._get_localName�s<��	3��?�?�"���	3��=�=�&�&�s�A�.�r�2�2�	3����):�:c��UR$r1)�	specifiedrs r�_get_specified�Attr._get_specified�����~�~�rc��UR$r1)r�rs r�	_get_name�Attr._get_name�����z�z�rc�V�XlURb[UR5 ggr1)r�r�rV�r�values  r�	_set_name�Attr._set_name�s&���
����(��D�-�-�.�)rc��UR$r1)r�rs r�
_get_value�Attr._get_value�����{�{�rc��XlXRSlURb[	UR5 XRSlgr<)r�r3rmr�rVrs  r�
_set_value�Attr._set_value�s?����"'���������(��D�-�-�.�"'�����rc��UR$r1)r�rs r�_get_prefix�Attr._get_prefix�����|�|�rc�2�URnUS:Xa0U(a)U[:wa[RR	S5eXlUc
URnOU<SUR<3nUR(a[UR5 X0l	g)N�xmlnsz5illegal use of 'xmlns' prefix for the wrong namespacer�)
r�rrKrL�NamespaceErrr�r�r�rVr�)rr��nsuri�newNames    r�_set_prefix�Attr._set_prefix�sx���!�!���W����/�1��g�g�*�*�K�M�M����>��n�n�G�!'����8�G�����D�-�-�.��	rc��URnUb�URUR	URURUR
4	UR(a;SUlU=RS-slUR=RS-sl	URHnUR5 M URSS2	g)NFrF)r��_attrsr��_attrsNSr�r��_is_id�_magic_id_nodesrw�_magic_id_countr3rn)r�elemrss   rrn�Attr.unlink�s���
� � �������D�M�M�*��
�
�t�0�0�$�.�.�A�B��{�{�#����$�$��)�$��"�"�2�2�a�7�2��_�_�E��L�L�N�%��O�O�A�rc�2�UR(agURnURnUbUcgURU5nUcgUR(a&URURUR5$URUR5$r�)	rrwr��_get_elem_infor��isIdNSr��isIdr��rr�r�infos    r�	_get_isId�Attr._get_isId�s}���;�;��� � ��� � ���;�$�,���!�!�$�'���<������;�;�t�0�0�$�.�.�A�A��9�9�T�]�]�+�+rc�"�URnURnUbUc[$URU5nUc[$UR(a&URURUR5$URUR5$r1)	rwr��_no_typer"r��getAttributeTypeNSr��getAttributeTyper�r%s    r�_get_schemaType�Attr._get_schemaType�s{��� � ��� � ���;�$�,��O��!�!�$�'���<��O�����*�*�4�+<�+<�d�n�n�M�M��(�(����7�7r)	rr�r�r�r�r3r�r�r�)"r�r�r�r��	__slots__r�ATTRIBUTE_NODEr'r�r�rrlr�rJrr�r�r�r�r�propertyr�r�rrr�rrrr�rnr'r-r�rrrr�r�is���W�I��"�"�H��J��I�
�F�����)C�)C�D��+:�d��'�3���/�
�y�)�4�4�H�t��(�!��Z�8�8�I���
��k�;�
/�F��",� 8rr�r$z True if this attribute is an ID.z'Namespace-local name of this attribute.�
schemaTypezSchema type for this attribute.c���\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrS Sjr\rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!Sr"g
)!�NamedNodeMapi�z�The attribute list is a transient interface to the underlying
dictionaries.  Mutations here will change the underlying element's
dictionary.

Ordering is imposed artificially and does not reflect the order of
attributes as found in an input document.
�rr�
_ownerElementc�(�XlX lX0lgr1r5)r�attrs�attrsNSr�s    rr��NamedNodeMap.__init__�s�����
�)�rc�,�[UR5$r1)�lenrrs r�_get_length�NamedNodeMap._get_length�s���4�;�;��rc�v�U[URR55U$![a gf=fr1)r�r�keys�
IndexError�rrRs  r�item�NamedNodeMap.item�s;��	���T�[�[�-�-�/�0��7�8�8���	��	�s�(+�
8�8c��/nURR5H*nURURUR45 M, U$r1)r�valuesror�r�rrrr]s   rr��NamedNodeMap.itemss<�����K�K�&�&�(�D�
�H�H�d�m�m�T�Z�Z�0�1�)��rc��/nURR5H6nURURUR4UR
45 M8 U$r1)rrFror�r�rrGs   r�itemsNS�NamedNodeMap.itemsNSsG�����K�K�&�&�(�D�
�H�H�t�(�(�$�.�.�9�4�:�:�F�G�)��rc�d�[U[5(aXR;$XR;$r1)�
isinstance�strrrr�s  r�__contains__�NamedNodeMap.__contains__s)���c�3����+�+�%�%��-�-�'�'rc�6�URR5$r1)rr@rs rr@�NamedNodeMap.keyss���{�{���!�!rc�6�URR5$r1)rr@rs r�keysNS�NamedNodeMap.keysNSs���}�}�!�!�#�#rc�6�URR5$r1)rrFrs rrF�NamedNodeMap.valuess���{�{�!�!�#�#rNc�8�URRX5$r1�r�get)rr�rs   rrZ�NamedNodeMap.gets���{�{���t�+�+rc��UR[USS5Lag[U5[U5:�[U5[U5:-
$)Nrr)r�getattr�idr�s  r�_cmp�NamedNodeMap._cmp"s?���;�;�'�%��4�8�8���t�H�r�%�y�(�R��X��5�	�-A�B�Brc�*�URU5S:H$r<�r_r�s  r�__eq__�NamedNodeMap.__eq__(����y�y���1�$�$rc�*�URU5S:�$r<rbr�s  r�__ge__�NamedNodeMap.__ge__+rerc�*�URU5S:�$r<rbr�s  r�__gt__�NamedNodeMap.__gt__.����y�y���!�#�#rc�*�URU5S:*$r<rbr�s  r�__le__�NamedNodeMap.__le__1rerc�*�URU5S:$r<rbr�s  r�__lt__�NamedNodeMap.__lt__4rlrc�h�[U[5(aURU$URU$r1)rMrHrr)r�attname_or_tuples  r�__getitem__�NamedNodeMap.__getitem__7s0���&��.�.��=�=�!1�2�2��;�;�/�0�0rc�P�[U[5(aURUnX#lg[U[5(d[S5eUnURU5 g![a: [	U5nUR
RUlURU5 N~f=f)Nz%value must be a string or Attr object)
rMrNrr�r�r6rw�setNamedItemr�	TypeError)r�attnamerr]s    r�__setitem__�NamedNodeMap.__setitem__>s����e�S�!�!�
(��{�{�7�+��
�J��e�T�*�*�� G�H�H��D����d�#���
(��G�}��%)�%7�%7�%E�%E��"��!�!�$�'�
(�s�A!�!AB%�$B%c�B�URU$![a gf=fr1)rr��rr�s  r�getNamedItem�NamedNodeMap.getNamedItemMs(��	��;�;�t�$�$���	��	�s��
�c�D�URX4$![a gf=fr1)rr��rr�r�s   r�getNamedItemNS�NamedNodeMap.getNamedItemNSSs+��	��=�=�,�!:�;�;���	��	�s��
�c�8�URU5nUbi[UR5 URUR	UR
URUR4	[US5(aSUl	U$[RR5e�Nr�)
rrVr6rr�rr�r�r�r�rKrLrT�rr��ns   r�removeNamedItem�NamedNodeMap.removeNamedItemYsz�����d�#���=��D�.�.�/����A�J�J�'��
�
�q�~�~�q�{�{�;�<��q�.�)�)�!%����H��'�'�%�%�'�'rc�8�URX5nUbi[UR5 URURUR
4	URUR	[US5(aSUl	U$[RR5er�)
r�rVr6rr�r�rr�r�r�rKrLrT�rr�r�r�s    r�removeNamedItemNS�NamedNodeMap.removeNamedItemNSesz������8���=��D�.�.�/��
�
�q�~�~�q�{�{�;�<����A�J�J�'��q�.�)�)�!%����H��'�'�%�%�'�'rc���[U[5(d8[RR	[U5<S[U5<35eURRUR5nU(aUR5 XRUR'XRURUR4'URUl[UR5 U$r`)rMr�rKrLrMrNrrZr�rnrr�r�r6r�rV)rr]r�s   rrx�NamedNodeMap.setNamedItemqs����$��%�%��'�'�-�-�.2�4�j�$�t�*�E�G�
G��k�k�o�o�d�i�i�(����J�J�L�!%���D�I�I��=A�
�
�t�(�(�$�.�.�9�:� �.�.�����)�)�*��
rc�$�URU5$r1)rx�rr]s  r�setNamedItemNS�NamedNodeMap.setNamedItemNS~s��� � ��&�&rc�V�Xn[UR5 UR5 gr1)rVr�rn)rrtr]s   r�__delitem__�NamedNodeMap.__delitem__�s!���%����)�)�*����
rc�H�URURUR4$r1r5rs r�__getstate__�NamedNodeMap.__getstate__�s���{�{�D�M�M�4�+=�+=�=�=rc�.�UuUlUlUlgr1r5�r�states  r�__setstate__�NamedNodeMap.__setstate__�s��9>�6���T�]�D�$6rr1)#r�r�r�r��__doc__r/r�r=rCr�rJrOr@rTrFrZ�__len__r_rcrgrjrnrqrur{rr�r�r�rxr�r�r�r�r�rrrr4r4�s����8�I�*�
 ����(�"�$�$�,��G�C�%�%�$�%�$�1�
$���
(�
(��'��
>�?rr4�lengthz$Number of nodes in the NamedNodeMap.c�0�\rSrSrSrSrSrSrSrSr	g)	�TypeInfoi���	namespacer�c��XlX lgr1r�)rr�r�s   rr��TypeInfo.__init__�s��"���	rc���UR(a7SURR<SUR<SUR<S3$SURR<SUR<S3$)Nr�� z (from z)>r�)r��	__class__r�r�rs r�__repr__�TypeInfo.__repr__�sO���>�>�>�*.�.�.�*A�*A�4�9�9�*.�.�.�:�
:��!%��� 7� 7����C�Crc��UR$r1)r�rs rr��TypeInfo._get_name�����y�y�rc��UR$r1)r�rs r�_get_namespace�TypeInfo._get_namespace�r�r)r�r�N)
r�r�r�r�r/r�r�r�r�r�rrrr�r��s��#�I��D��rr�c�v�\rSrSrSr\RrSr\	r
Sr\R\R\R\R\R\R 4r\SS4SjrSrSrSrS	rS
rSrSrS
rSrSrSr\rSr Sr!Sr"\"r#Sr$Sr%Sr&Sr'Sr(S Sjr)Sr*Sr+Sr,Sr-Sr.Sr/g)!�Elementi�)rwrOr�r�r�r�r�r3rrrXrYNrc��SUlU=UlUlX0lX l[5UlS=UlUlSUl	SUl
gr1)rOr�r�r�r�r�r3rXrYrr)rr�r�r�r�s     rr��Element.__init__�sK�����'.�.���t�}���(��"�*���26�6���4�/������
rc�<�URc0Ul0Ulggr1)rrrs r�_ensure_attributes�Element._ensure_attributes�s���;�;���D�K��D�M�rc�z�UR$![a" URRSS5Ss$f=fr�)r�r�r�r�rs rr��Element._get_localName�s<��	2��?�?�"���	2��<�<�%�%�c�1�-�b�1�1�	2�r�c��UR$r1�r�rs r�_get_tagName�Element._get_tagName�rrc���URb:[URR55HnUR5 M SUlSUl[
RU5 gr1)rr�rFrnrr)rr�s  rrn�Element.unlink�sK���;�;�"��T�[�[�/�/�1�2�����
�3������
����D�rc�r�URcgURUR$![a gf=f)aVReturns the value of the specified attribute.

Returns the value of the element's attribute named attname as
a string. An empty string is returned if the element does not
have such an attribute. Note that an empty string may also be
returned as an explicitly given attribute value, use the
hasAttribute method to distinguish these two cases.
r)rrr�)rrzs  r�getAttribute�Element.getAttribute�s=���;�;���	��;�;�w�'�-�-�-���	��	�s�)�
6�6c�t�URcgURX4R$![a gf=fr)rrr�r�s   r�getAttributeNS�Element.getAttributeNS�s>���=�=� ��	��=�=�,�!:�;�A�A�A���	��	�s�*�
7�7c��URU5nUc4[U5nX#lURUlUR	U5 gX#R:wa$X#lUR
(a[
U5 gggr1)�getAttributeNoder�rrw�setAttributeNoder$rV)rrzrr�s    r�setAttribute�Element.setAttribute�si���$�$�W�-���<���=�D��J�!%�!3�!3�D���!�!�$�'�
�j�j�
 ��J��y�y���%��!rc�L�[U5upEURX5nUc5[X!XT5nX6lURUlURU5 gX6R:wa"X6lUR(a[U5 URU:wa
XFlX&l	ggr1)
�_nssplit�getAttributeNodeNSr�rrwr�r$rVr�r�)rr��
qualifiedNamerr��	localnamer�s       r�setAttributeNS�Element.setAttributeNSs���$�]�3����&�&�|�?���<��
�Y�G�D��J�!%�!3�!3�D���!�!�$�'��
�
�"�"�
��9�9�#�D�)��{�{�f�$�$�� -�
�%rc�T�URcgURRU5$r1rY)r�attrnames  rr��Element.getAttributeNodes"���;�;����{�{���x�(�(rc�V�URcgURRX45$r1)rrZr�s   rr��Element.getAttributeNodeNSs'���=�=� ���}�}� � �,�!:�;�;rc��URSU4;a[RRS5eUR	5 UR
R
URS5nUbURU5 URR
URUR4S5nUbX2LaURU5 [X5 X!LaU$X1LaU$g)Nzattribute node already owned)
r�rKrL�InuseAttributeErrr�rrZr��removeAttributeNoderr�r��_set_attribute_node)rr��old1�old2s    rr��Element.setAttributeNode"s������T�4�L�0��'�'�+�+�,J�K�K����!��{�{���t�y�y�$�/�����$�$�T�*��}�}� � �$�"3�"3�T�^�^�!D�d�K����� 0��$�$�T�*��D�'����K����K�rc���URc[RR5eURUnUR
U5 g![
a [RR5ef=fr1)rrKrLrTrr�r�)rr�r�s   r�removeAttribute�Element.removeAttribute7sf���=�=� ��'�'�%�%�'�'�	(��;�;�t�$�D�	
� � ��&���	(��'�'�%�%�'�'�	(�s�A�)A7c��URc[RR5eURX4nURU5 g![a [RR5ef=fr1)rrKrLrTr�r�)rr�r�r�s    r�removeAttributeNS�Element.removeAttributeNS@si���=�=� ��'�'�%�%�'�'�	(��=�=�,�!:�;�D�	
� � ��&���	(��'�'�%�%�'�'�	(�s�A�)A8c�,�Uc[RR5eURUR [
U5 UR5 URUlU$![
a [RR5ef=fr1)	rKrLrTrr�r�rVrnrwr�s  rr��Element.removeAttributeNodeIs{���<��'�'�%�%�'�'�	(��K�K��	�	�"�	������
�"�/�/�������	(��'�'�%�%�'�'�	(�s�A*�*)Bc�:�URcgXR;$)z�Checks whether the element has an attribute with the specified name.

Returns True if the element has an attribute with the specified name.
Otherwise, returns False.
F�rr~s  r�hasAttribute�Element.hasAttributeYs���;�;����{�{�"�"rc�>�URcgX4UR;$�NF)rr�s   r�hasAttributeNS�Element.hasAttributeNScs!���=�=� ���(�D�M�M�9�9rc�*�[X[55$)z�Returns all descendant elements with the given tag name.

Returns the list of all descendant elements (not direct children
only) with the specified tag name.
�r�r�r~s  r�getElementsByTagName�Element.getElementsByTagNamehs��/�t�8�:�F�Frc�,�[XU[55$r1�r�r�r�s   r�getElementsByTagNameNS�Element.getElementsByTagNameNSp���1��	�8�:�7�	7rc�6�SUR[U54-$)Nz<DOM Element: %s at %#x>)r�r^rs rr��Element.__repr__ts��)�T�\�\�2�d�8�,D�D�Drc�D�URUS-UR-5 UR5nUR5HAnURSU-5 [	XUR
S5 URS5 MC UR(a�URS5 [UR5S:Xa]URSR[R[R4;a"URSRUSSS5 OJURU5 URHnURXU-X45 M URU5 URS	UR<SU<35 gURS
U-5 g)z�Write an XML element to a file-like object

Write the element to the writer object that must provide
a write method (e.g. a file or StringIO object).
r�z %s="Tr�r�rFrrz</z/>%sN)
r�r��_get_attributesr@r�rr3r<r'rrlr�r))rr.r,�	addindentr-r8�a_namer]s        rr)�Element.writexmlws:��	���V�C�Z�$�,�,�.�/��$�$�&���j�j�l�F��L�L��F�*�+���f�
� 3� 3�T�:��L�L���#��?�?��L�L����D�O�O�$��)�����"�+�+�����(?�(?�0A�A�����"�+�+�F�B��B�?����T�"� �O�O�D��M�M�&��*:�I�L�,����V�$��L�L�d�l�l�D�9�:��L�L����'rc�d�UR5 [URURU5$r1)r�r4rrrs rr��Element._get_attributes�s%�����!��D�K�K�����=�=rc�(�UR(aggr�r�rs r�
hasAttributes�Element.hasAttributes�s���;�;��rc�H�URU5nURU5 gr1)r��setIdAttributeNode)rr��idAttrs   r�setIdAttribute�Element.setIdAttribute�s ���&�&�t�,������'rc�H�URX5nURU5 gr1)r�r)rr�r�rs    r�setIdAttributeNS�Element.setIdAttributeNS�s ���(�(��A������'rc��Ub URUR5(d[RR	5e[U5b[RR
5eUR(dGSUlU=RS-
slUR=RS-
sl
[U5 gg)NTrF)r�r�rKrLrT�_get_containing_entref�NoModificationAllowedErrrrrwrrV)rrs  rr�Element.setIdAttributeNode�s����>�����1D�1D�!E�!E��'�'�%�%�'�'�!�$�'�3��'�'�2�2�4�4��}�}� �F�M�� � �A�%� ����.�.�!�3�.��D�!�	r)
rrr3r�rXr�rOr�rYr��rrr)0r�r�r�r�r/rrpr'r�r*r2rr�r�rlr�r�rJrr�r�r�r�rnr�r�r�r�r�r�r��setAttributeNodeNSr�r�r��removeAttributeNodeNSr�r�r�r�r�r)r�rr	rrr�rrrr�r��s��1�I�� � �H��I��J��O��*�*��9�9��*�*�����0�0��3�3�5��.=�T���(�
2���� �
&�.�")�
<�
�&*��'�'��0��#�:�
G�7�E�(�@>��(�(�	"rr�r�z*NamedNodeMap of attributes on the element.z%Namespace-local name of this element.c��[U5 UR5 XRUR'XRUR
UR4'Xlgr1)rVr�rr�rr�r�r�)�elementr�s  rr�r��sK���G����� � $�N�N�4�9�9��<@���d�'�'����8�9�
 �rc�f�\rSrSrSrSrSr\"5rSr	Sr
SrSrSr
SrS	rS
rSrSrSrg)
�	Childlessi�zyMixin that makes childless-ness easy to implement and avoids
the complexity of the Node methods that deal with children.
rNc��gr1rrs rr=�Childless._get_firstChild�rrc��gr1rrs rrB�Childless._get_lastChild�rrc�Z�[RRURS-5e)Nz nodes cannot have children�rKrLrMr�r�s  rrQ�Childless.appendChild��&���g�g�)�)��M�M�9�9�;�	;rc��gr�rrs rr4�Childless.hasChildNodes����rc�Z�[RRURS-5e�Nz nodes do not have childrenr�rrZr[s   rrI�Childless.insertBefore�r rc�Z�[RRURS-5er%)rKrLrTr�ris  rrP�Childless.removeChild�s&���g�g�!�!��M�M�9�9�;�	;rc��gr1rrs rrq�Childless.normalize�s��rc�Z�[RRURS-5er%r�rrZrds   rre�Childless.replaceChild�r r)r�r�r�r�r�r/r��
EmptyNodeListr3r�r�r=rBrQr4rIrPrqrer�rrrrr�sL����I��J���J��J��I���;��;�;�
�;rrc�|�\rSrSr\R
rSrSrSr	Sr
\"\	\
5rSr
Sr\"\
\5rSSjrS	rg
)�ProcessingInstructioni���targetrmc��XlX lgr1r2)rr3rms   rr��ProcessingInstruction.__init__�s�����	rc��UR$r1�rmrs r�_get_nodeValue�$ProcessingInstruction._get_nodeValue�r�rc��Xlgr1r7rs  r�_set_nodeValue�$ProcessingInstruction._set_nodeValue�s���	rc��UR$r1�r3rs r�
_get_nodeName�#ProcessingInstruction._get_nodeNamer
rc��Xlgr1r>rs  r�
_set_nodeName�#ProcessingInstruction._set_nodeNames���rc	�l�URU<SUR<SUR<SU<35 g)Nz<?r��?>)r�r3rm�rr.r,r�r-s     rr)�ProcessingInstruction.writexmls������t�{�{�D�I�I�t�L�Mr)rmr3Nr)r�r�r�r�rr�r'r/r�r8r;r1r�r?rBr�r)r�rrrr1r1�sI���/�/�H�"�I��
�����8�I����
�}�5�H�Nrr1c�n�\rSrSrSrSrSr\rSrSr	\
"\\	5=rrSr
SrS	rS
rSrSrS
rg)�
CharacterDatai
)�_datarwrOrYrXc�t�S=UlUlS=UlUlSUl[
R
U5 gr)rwrOrYrXrJrr�rs rr��CharacterData.__init__
s4��/3�3���T�_�26�6���t�/���
��
�
�d�rc�,�[UR5$r1)r<rmrs rr=�CharacterData._get_length����4�9�9�~�rc��UR$r1�rJrs r�	_get_data�CharacterData._get_datarrc��Xlgr1rQ�rrms  r�	_set_data�CharacterData._set_datas���
rc��URn[U5S:�aSnOSnSURR<SUSS<U<S3$)N�
z...rz<DOM z node "rz">)rmr<r�r�)rrm�	dotdotdots   rr��CharacterData.__repr__sB���y�y���t�9�r�>��I��I���N�N�#�#�T�!�B�Z��<�	<rc�(�US:a[RRS5eU[UR5:�a[RRS5eUS:a[RRS5eURXU-$�Nr�offset cannot be negative�#offset cannot be beyond end of datazcount cannot be negative�rKrL�IndexSizeErrr<rm�r�offset�counts   r�
substringData�CharacterData.substringData'su���A�:��'�'�&�&�'B�C�C��S����^�#��'�'�&�&�'L�M�M��1�9��'�'�&�&�'A�B�B��y�y��u��-�-rc�,�URU-Ulgr1r7)r�args  r�
appendData�CharacterData.appendData0s���I�I��O��	rc�"�US:a[RRS5eU[UR5:�a[RRS5eU(a+URSU<U<URUS<3Ulgg)Nrr^r_r`)rrcrhs   r�
insertData�CharacterData.insertData3ss���A�:��'�'�&�&�'B�C�C��S����^�#��'�'�&�&�'L�M�M���	�	�'�6�"�C����6�7�);�=�D�I�rc�d�US:a[RRS5eU[UR5:�a[RRS5eUS:a[RRS5eU(a'URSUURX-S-Ulggr]r`rbs   r�
deleteData�CharacterData.deleteData<s����A�:��'�'�&�&�'B�C�C��S����^�#��'�'�&�&�'L�M�M��1�9��'�'�&�&�'A�B�B���	�	�'�6�*�T�Y�Y�v�|�}�-E�E�D�I�rc�p�US:a[RRS5eU[UR5:�a[RRS5eUS:a[RRS5eU(a-URSU<U<URX-S<3Ulggr]r`)rrcrdrhs    r�replaceData�CharacterData.replaceDataFs����A�:��'�'�&�&�'B�C�C��S����^�#��'�'�&�&�'L�M�M��1�9��'�'�&�&�'A�B�B���	�	�'�6�"�C����6�<�=�)A�C�D�I�r)rJrmrXrwrOrYN)r�r�r�r�r/r�r=r�rRrVr1rmr�r�rerirlrorrr�rrrrIrI
sS��W�I����G��� �	�9�5�5�D�9�<�.�$�=�F�	CrrIzLength of the string data.c�Z�\rSrSrSr\RrSrSr	Sr
SSjrSrSr
S	rS
rg)r�iTrz#textNc���US:dU[UR5:�a[RR	S5eUR5nURUSUlURUlURnUR(aSXRR;a:UcURRU5 OURRX#5 URSUUlU$)Nrzillegal offset value)r<rmrKrLrar�rwrXrOr3rQrI)rrc�newText�nexts    r�	splitText�Text.splitText[s����A�:��#�d�i�i�.�0��'�'�&�&�'=�>�>��.�.�"���y�y���)��� $� 2� 2��������?�?�t���'A�'A�A��|����+�+�G�4����,�,�W�;��I�I�g�v�&��	��rc�B�[X<UR<U<3S5 gr�)r�rmrFs     rr)�
Text.writexmljs���F���	�	�4�@�%�Hrc���UR/nURnUb]UR[R[R
4;a)UR
SUR5 URnOOUbM]URnUb\UR[R[R
4;a(URUR5 URnOOUbM\SRU5$)Nrr)
rmrYr'rrlr�rWrXro�join)rrrr�s   r�_get_wholeText�Text._get_wholeTextos���
�Y�Y�K��� � ���m��z�z�d�n�n�d�.E�.E�F�F�����A�F�F�#��%�%����m�
�����m��z�z�d�n�n�d�.E�.E�F�F������� ��M�M����m��w�w�q�z�rc��URnURnUbTUR[R[R
4;a URnUR
U5 UnOOUbMTURnU(dUR
U5 UbTUR[R[R
4;a URnUR
U5 UnOOUbMTU(aXlU$gr1)	rOrYr'rrlr�rPrXrm)r�contentr�r�rws     r�replaceWholeText�Text.replaceWholeText�s�������� � ���m��z�z�d�n�n�d�.E�.E�F�F��(�(���"�"�1�%����
�m�
��������t�$��m��z�z�d�n�n�d�.E�.E�F�F��}�}���"�"�1�%����
�m���I��K�rc��URR5(ag[U5nUcgURR	U5nUcgUR5$r�)rm�strip�_get_containing_elementrwr"�isElementContent)rrr&s   r�!_get_isWhitespaceInElementContent�&Text._get_isWhitespaceInElementContent�sU���9�9�?�?����&�t�,���<���!�!�0�0��6���<���(�(�*�*rr7r)r�r�r�r�r/rrlr'r�r�rxr)r~r�r�r�rrrr�r�Ts4���I��~�~�H��H��J�
�I�
�$�8
+rr��isWhitespaceInElementContentzKTrue iff this text node contains only whitespace and is in element content.�	wholeTextz.The text of all logically-adjacent text nodes.c��URnUb1UR[R:XaU$URnUbM1gr1)rOr'rrp�r]r\s  rr�r��s<�����A�
�-��:�:��*�*�*��H�
�L�L���-�rc��URnUb1UR[R:XaU$URnUbM1gr1)rOr'rr�r�s  rrr�s<�����A�
�-��:�:��3�3�3��H�
�L�L���-�rc�@�\rSrSr\R
rSrSrSSjr	Sr
g)�Commenti�z#commentc�:�[RU5 Xlgr1)rIr�rJrUs  rr��Comment.__init__�s�����t�$��
rc��SUR;a[S5eURU<SUR<SU<35 g)Nz--z%'--' is not allowed in a comment nodez<!--z-->)rmrSr�rFs     rr)�Comment.writexml�s1���4�9�9���D�E�E������	�	�4�@�ArrQNr)r�r�r�r�rr�r'r�r�r)r�rrrr�r��s��� � �H��H��Brr�c�>�\rSrSrSr\RrSrSSjr	Sr
g)�CDATASectioni�rz#cdata-sectionc��URRS5S:�a[S5eURSUR-5 g)Nz]]>rz$']]>' not allowed in a CDATA sectionz<![CDATA[%s]]>)rm�findrSr�rFs     rr)�CDATASection.writexml�s9���9�9�>�>�%� �A�%��C�D�D����%��	�	�1�2rNr)r�r�r�r�r/rr�r'r�r)r�rrrr�r��s���I��&�&�H��H�3rr�c�j�\rSrSrSrSSjrSrSrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrg)�ReadOnlySequentialNamedNodeMapi���_seqc��Xlgr1r�)r�seqs  rr��'ReadOnlySequentialNamedNodeMap.__init__�s���	rc�,�[UR5$r1�r<r�rs rr��&ReadOnlySequentialNamedNodeMap.__len__�rOrc�,�[UR5$r1r�rs rr=�*ReadOnlySequentialNamedNodeMap._get_length�rOrc�R�URHnURU:XdMUs $ gr1)r�r�r�s   rr�+ReadOnlySequentialNamedNodeMap.getNamedItem�s!�����A��z�z�T�!���rc�v�URH)nURU:XdMURU:XdM'Us $ gr1)r�r�r�r�s    rr��-ReadOnlySequentialNamedNodeMap.getNamedItemNS�s,�����A��~�~��-�!�+�+��2J���rc��[U[5(aUR"U6nOURU5nUc[	U5eU$r1)rMrHr�rr�)r�
name_or_tupler]s   rru�*ReadOnlySequentialNamedNodeMap.__getitem__�sD���m�U�+�+��&�&�
�6�D��$�$�]�3�D��<��=�)�)��rc�P�US:agURU$![a gf=fr<)r�rArBs  rrC�#ReadOnlySequentialNamedNodeMap.item�s2���1�9��	��9�9�U�#�#���	��	�s��
%�%c�@�[RRS5e�Nz"NamedNodeMap instance is read-only�rKrLrr~s  rr��.ReadOnlySequentialNamedNodeMap.removeNamedItem����g�g�.�.�0�2�	2rc�@�[RRS5er�r�r�s   rr��0ReadOnlySequentialNamedNodeMap.removeNamedItemNSr�rc�@�[RRS5er�r�r�s  rrx�+ReadOnlySequentialNamedNodeMap.setNamedItemr�rc�@�[RRS5er�r�r�s  rr��-ReadOnlySequentialNamedNodeMap.setNamedItemNSr�rc��UR/$r1r�rs rr��+ReadOnlySequentialNamedNodeMap.__getstate__s���	�	�{�rc��USUlgr<r�r�s  rr��+ReadOnlySequentialNamedNodeMap.__setstate__s
���!�H��	rN)r)r�r�r�r�r/r�r�r=rr�rurCr�r�rxr�r�r�r�rrrr�r��sH���I�����
�
��2�2�2�2��rr�z&Number of entries in the NamedNodeMap.c�.�\rSrSrSrSrSrSrSrSr	g)�
Identifiediz@Mix-in class that supports the publicId and systemId attributes.��publicId�systemIdc��XlX lgr1r�)rr�r�s   r�_identified_mixin_init�!Identified._identified_mixin_init"s�� �
� �
rc��UR$r1)r�rs r�
_get_publicId�Identified._get_publicId&����}�}�rc��UR$r1)r�rs r�
_get_systemId�Identified._get_systemId)r�rN)
r�r�r�r�r�r/r�r�r�r�rrrr�r�s��J�&�I�!��rr�c�\�\rSrSr\R
rSrSrSr	Sr
SrSrSr
SrSSjrSrg)	�DocumentTypei,Nc��[5Ul[5UlU(a[U5up#X0lURUlgr1)r��entities�	notationsr�r�r�)rr�r�r�s    rr��DocumentType.__init__4s6��6�8��
�7�9���� (�� 7��F�!�I��	�	��
rc��UR$r1)�internalSubsetrs r�_get_internalSubset� DocumentType._get_internalSubset<����"�"�"rc��URGc�[S5nURUlURUl[R
RRnU(Ga^/URl	/URl	URRHen[URURUR5nURRRU5 URX4U5 Mg URRH�n[!URURURUR"5nUR$UlUR&UlUR(UlURRRU5 URX6U5 M� URX0U5 U$gr1)rwr�r�r�rKrL�UserDataHandler�NODE_CLONEDr�r�r��Notationr�r�ror��Entity�notationName�actualEncodingrr�)rrx�cloner�r��notation�e�entitys        rry�DocumentType.cloneNode?sS�����%� ��&�E����E�J�!�Y�Y�E�N����/�/�;�;�I��&(����#�')����$����,�,�A�'��
�
�A�J�J��
�
�K�H��O�O�(�(�/�/��9��-�-�i�H�E�-����+�+�A�#�A�J�J��
�
�A�J�J�$%�N�N�4�F�,-�,<�,<�F�)�&'�j�j�F�O�%&�Y�Y�F�N��N�N�'�'�.�.�v�6��-�-�i�F�C�,�
�(�(��%�@��L�rc
��URS5 URUR5 UR(a6URU<SUR<SU<SUR<S35 O4UR(a#URU<SUR<S35 URb=URS5 URUR5 URS5 URSU-5 g)	Nz
<!DOCTYPE z
  PUBLIC '�'z  'z
  SYSTEM 'z [�]r�)r�r�r�r�r�rFs     rr)�DocumentType.writexmlZs������\�"����T�Y�Y���=�=��L�L� �$�-�-��t�}�}�F�
G�
�]�]��L�L�d�D�M�M�B�C����*��L�L����L�L��,�,�-��L�L������S��X�r)r�r�r�r�r)r�r�r�r�r�DOCUMENT_TYPE_NODEr'r�r�r�r�r�r�r�ryr)r�rrrr�r�,s:���&�&�H��I��D��H��H��N�"�#��6rr�c�p�\rSrSrSr\RrSrSr	Sr
SrSrSr
SrSrSrSrS	rS
rSrg)r�ihNc�\�XlX@l[5UlUR	X#5 gr1)r�r�r�r3r�)rr�r�r�r�s     rr��Entity.__init__qs$���
�$��"�*����#�#�H�7rc��UR$r1�r�rs r�_get_actualEncoding�Entity._get_actualEncodingwr�rc��UR$r1�rrs r�
_get_encoding�Entity._get_encodingzr�rc��UR$r1�r�rs r�_get_version�Entity._get_version}rrc�@�[RRS5e)Nz(cannot append children to an entity node�rKrLrM)rrZs  rrQ�Entity.appendChild�s���g�g�)�)�6�8�	8rc�@�[RRS5e)Nz+cannot insert children below an entity noder�r&s   rrI�Entity.insertBefore�s���g�g�)�)�9�;�	;rc�@�[RRS5e)Nz*cannot remove children from an entity noder�ris  rrP�Entity.removeChild�s���g�g�)�)�8�:�	:rc�@�[RRS5e)Nz)cannot replace children of an entity noder�r-s   rre�Entity.replaceChild�s���g�g�)�)�7�9�	9r)r3r�r�)r�r�r�r�r�r�ENTITY_NODEr'r�r�rr�r�r�r�r�rQrIrPrer�rrrr�r�hsN���J����H��I��N��H��G�8�#���8�;�:�9rr�c�6�\rSrSr\R
rSrSrSr	g)r�i�Nc�2�XlURX#5 gr1)r�r�)rr�r�r�s    rr��Notation.__init__�s���
��#�#�H�7r)r�)
r�r�r�r�rr�r'r�r�r�rrrr�r��s���!�!�H��I�8rr�c�:�\rSrSr/SQrSrSrSrSrSr	Sr
g	)
�DOMImplementationi�))�core�1.0)r�2.0)rN)rKr)rKr	)rKN)�ls-loadz3.0)r
Nc�P�US:XaSnUR5U4UR;$r)�lower�	_featuresr~s   rr}�DOMImplementation.hasFeature�s(���b�=��G��
�
���)�T�^�^�;�;rc��U(a,URb[RRS5eUR	5nUSL=(a USL=(a USL(+nU(d&U(a[RRS5eU(a�[
U5upgUS:Xa%US:wa[RRS5eU(a&U(d[RRS5eURX5nU(aURU5 URU5 U(aU=UlUl
X4lXlU$)Nz(doctype object owned by another DOM treezElement with no namerKz$http://www.w3.org/XML/1998/namespacezillegal use of 'xml' prefixz(illegal use of prefix without namespaces)
rOrKrL�WrongDocumentErr�_create_document�InvalidCharacterErrr�r�createElementNSrQrw�doctyper|)	rr�r�rr��add_root_elementr�r�rs	         r�createDocument� DOMImplementation.createDocument�s&���w�)�)�5��'�'�*�*�:�<�
<��#�#�%�� ,�� 4�!4�$1�T�$9�!4�$+�t�O�5���!1��'�'�-�-�.D�E�E�� (�� 7��F�����#I�I��g�g�*�*�+H�I�I��l��g�g�*�*�>�@�@��)�)�,�F�G������(��O�O�G�$��9<�<�G���!6���!���
rc�4�[U5nX$lX4lU$r1)r�r�r�)rr�r�r�rs     r�createDocumentType�$DOMImplementation.createDocumentType�s���}�-��#��#���rc�6�URUS5(aU$gr1)r}r�s  rr��DOMImplementation.getInterface�s���?�?�7�D�)�)��K�rc��[5$r1)�Documentrs rr�"DOMImplementation._create_document�s
���z�rrN)r�r�r�r�r
r}rrr�rr�rrrrr�s#���I�<�
+�Z��rrc�R�\rSrSrSrSrSrSrSrSr	Sr
S	rS
rSr
SrSrg
)�ElementInfoi�z�Object that represents content-model information for an element.

This implementation is not expected to be used in practice; DOM
builders should provide implementations which do the right thing
using information available to it.

r�c��Xlgr1r�r~s  rr��ElementInfo.__init__�s���rc��[$r1�r*�r�anames  rr,�ElementInfo.getAttributeType�����rc��[$r1r%r�s   rr+�ElementInfo.getAttributeTypeNS�r)rc��gr�rrs rr��ElementInfo.isElementContent�r#rc��g)zIReturns true iff this element is declared to have an EMPTY
content model.Frrs r�isEmpty�ElementInfo.isEmpty�s��rc��g)z7Returns true iff the named attribute is a DTD-style ID.Frr&s  rr$�ElementInfo.isId���rc��g)z<Returns true iff the identified attribute is a DTD-style ID.Frr�s   rr#�ElementInfo.isIdNSr3rc��UR$r1r�rs rr��ElementInfo.__getstate__rrc��Xlgr1r�r�s  rr��ElementInfo.__setstate__s���rN)r�r�r�r�r�r/r�r,r+r�r/r$r#r�r�r�rrrr!r!�s;����I������
���rr!c��UR[R:Xa"URR	5 SUlg[
U5(a6URRR	5 SURlggr1)r'rr(�	_id_cache�clear�_id_search_stackr�rwr�s rrVrVsb���}�}��*�*�*������� $���	�d�	�	����$�$�*�*�,�-1����+�
rc��\rSrSrSr\R\R\R\R4r
\"5r\RrSrSrSrSrS=rrSrSrSrSrSrSrSrSrSrSrS	rS
r Sr!Sr"S
r#Sr$Sr%Sr&Sr'Sr(Sr)Sr*Sr+Sr,Sr-Sr.Sr/Sr0Sr1Sr2Sr3Sr4Sr5S r6S!r7S"r8S#r9S$r:S%r;S)S&jr<S'r=S(r>g)*ri)�
_elem_inforr=r3r;z	#documentNFrc�Z�SUl[5Ul0Ul0UlSUlgr1)rr�r3r?r;r=rs rr��Document.__init__5s*�����"�*��������� $��rc��UR(aURUR4nOURnURR	U5$r1)r�r�r�r?rZ)rrr�s   rr"�Document._get_elem_info>s?������&�&��(9�(9�9�C��/�/�C����"�"�3�'�'rc��UR$r1r�rs rr��Document._get_actualEncodingEr�rc��UR$r1)rrs r�_get_doctype�Document._get_doctypeHrrc��UR$r1)�documentURIrs r�_get_documentURI�Document._get_documentURIKs�����rc��UR$r1r�rs rr��Document._get_encodingNr�rc��UR$r1)�errorHandlerrs r�_get_errorHandler�Document._get_errorHandlerQs��� � � rc��UR$r1)rrs r�_get_standalone�Document._get_standaloneTr:rc��UR$r1)�strictErrorCheckingrs r�_get_strictErrorChecking�!Document._get_strictErrorCheckingWs���'�'�'rc��UR$r1r�rs rr��Document._get_versionZrrc���URUR;a8[RR	[U5<S[U5<35eURbURRU5 UR[R:Xa4UR5(a[RR	S5e[RX5$)NrEz two document elements disallowed)r'rJrKrLrMrNrOrPrrp�_get_documentElementrQr�s  rrQ�Document.appendChild]s����=�=�� 6� 6�6��'�'�-�-�.2�4�j�$�t�*�E�G�
G��?�?�&�
�O�O�'�'��-��=�=�D�-�-�-��(�(�*�*��'�'�-�-�2�4�
4�����+�+rc���URRU5 S=UlUlSUlURULaSUl	U$![a [RR5ef=fr1)
r3rhrSrKrLrTrXrYrO�documentElementris  rrP�Document.removeChildmsr��	(��O�O�"�"�8�,�;?�>���x�7�"������8�+�#'�D� �����	(��'�'�%�%�'�'�	(�s�A
�
)A3c�n�URH%nUR[R:XdM#Us $ gr1)r3r'rrpr�s  rr]�Document._get_documentElementys'���O�O�D��}�}�� 1� 1�1���$rc��URb!URR5 SUl[RU5 gr1)rrnrrs rrn�Document.unlink~s/���<�<�#��L�L���!��D�L����D�rc��U(dgURRSSS5nURUlURUlURUlUR
H�n[
X1U5nURRU5(deUR
RU5 UR[R:XaURbeO3UR[R:XaURbeXBlX$lM� UR#[$R&R(R*X5 U$r1)r|rrrr�r3rvrwr�ror'rr(r`r�rrOr�rKrLr�r�)rrxr�r��
childclones     rry�Document.cloneNode�s�����#�#�2�2�4��t�D��������?�?�������
����A�$�Q�e�4�J��+�+�6�6�u�=�=�=�=����#�#�J�/��"�"�d�&8�&8�8��,�,�4�4�4��$�$��(?�(?�?��}�}�,�,�,� *�
�$)�!�!�	
�$�$�S�W�W�%<�%<�%H�%H�%)�	2��rc�&�[5nXlU$r1)r�rw)rr�s  r�createDocumentFragment�Document.createDocumentFragment�s��������rc�(�[U5nXlU$r1)r�rw)rr�r�s   r�
createElement�Document.createElement�s���G������rc�r�[U[5(d[S5e[5nXlXlU$�Nznode contents must be a string)rMrNryr�rmrw)rrm�ts   r�createTextNode�Document.createTextNode�s1���$��$�$��<�=�=��F�������rc�r�[U[5(d[S5e[5nXlXlU$rp)rMrNryr�rmrw�rrmr\s   r�createCDATASection�Document.createCDATASection�s1���$��$�$��<�=�=��N�������rc�(�[U5nXlU$r1)r�rwrus   r�
createComment�Document.createComment�s���D�M�����rc�(�[X5nXlU$r1)r1rw)rr3rm�ps    r�createProcessingInstruction�$Document.createProcessingInstruction�s��!�&�/�����rc�6�[U5nXlSUlU$r)r�rwr)rr��as   r�createAttribute�Document.createAttribute�s����K��������rc�D�[U5up4[X!U5nXlU$r1)r�r�rw)rr�r�r�r�r�s      rr�Document.createElementNS�s%��$�]�3����M��8�����rc�R�[U5up4[X!XC5nXlSUlU$r)r�r�rwr)rr�r�r�r�r�s      r�createAttributeNS�Document.createAttributeNS�s,��$�]�3�����i�@��������rc�*�[XX45nXlU$r1)r�rw)rr�r�r�r�r�s      r�_create_entity�Document._create_entity�s���4�8�:�����rc�*�[XU5nXlU$r1)r�rw)rr�r�r�r�s     r�_create_notation�Document._create_notation�s���T�X�.�����rc��XR;aURU$UR(dUR(dgURnUcUR/nX lOU(dgSnU(GaCUR5nUR
URVs/sHnUR[;dMUPM sn5 URU5nU(GaWURR5GH7nUR(aoURURUR5(aBX@RUR 'UR U:XaUnMlUR"(d GO.M�M�UR%UR&5(aAX@RUR 'UR U:XaUnM�UR"(d O�M�UR((dM�X@RUR 'UR U:XaUnGM%UR"S:XdGM8 Ot OqUR"(a`URR5HBnUR((dMX@RUR 'UR U:XdM@UnMD UbU$U(aGMCU$s snf)NrF)r;r?rr=r`�pop�extendr3r'rUr"r�rFr�r#r�rrr$r�r)rr^�stack�resultr]rsr&r�s        r�getElementById�Document.getElementById�s#��
�����>�>�"�%�%����4�#7�#7���%�%���=��)�)�*�E�$)�!�������9�9�;�D��L�L�T�_�_�I�_�E�"�^�^�/G�G� �_�I�
J��&�&�t�,�D��!�O�O�2�2�4�D��(�(��;�;�t�'8�'8�$�.�.�I�I�9=�N�N�4�:�:�6�#�z�z�R�/�)-��%)�%9�%9� %�&:�	J����4�9�9�-�-�59���t�z�z�2��:�:��+�%)�F�!%�!5�!5�!�"6�����59���t�z�z�2��:�:��+�%)�F�!�1�1�Q�6�!�'5�(�%�%� �O�O�2�2�4�D��{�{�{�59���t�z�z�2��:�:��+�%)�F�	5�
�!���
�O�e�N�
��IIs� J<�<J<c�*�[X[55$r1r�r~s  rr��Document.getElementsByTagNames��.�t�8�:�F�Frc�,�[XU[55$r1r�r�s   rr��Document.getElementsByTagNameNSr�rc�8�URRX5$r1)r|r}r~s   rr��Document.isSupporteds���"�"�-�-�g�?�?rc��UR[R:Xa[RRS5eUR[R:Xa[RRS5e[XU5$)Nzcannot import document nodesz!cannot import document type nodes)r'rr(rKrL�NotSupportedErrr�rv)rr]rxs   r�
importNode�Document.importNode!s_���=�=�D�.�.�.��'�'�)�)�*H�I�I�
�]�]�d�5�5�
5��'�'�)�)�*M�N�N��4�t�,�,rc��/nU(aURSUS35 UbURSU(aSOSS35 URSSRU5SU35 URHnUR	XX45 M g)	Nz
encoding="r�zstandalone="�yes�noz<?xml version="1.0" r�rE)ror�r}r3r))	rr.r,r�r-rr�declarationsr]s	         rr)�Document.writexml(s���������*�X�J�a� 8�9��!����,�
�u��.M�Q� O�P����+�C�H�H�\�,B�+C�2�d�V�L�M��O�O�D��M�M�&�)�:�$rc�>�URULa1[RRSU<SUR<35eUR[
R[
R4;a[RRS5eU[:wa�SU;aXURSS5upEUS:Xa=U[RR:wa[RRS5eOjUS:Xa[U[RR:wa=UR[
R:Xa[RRS5eSnUnOSnSnUR[
R:Xa-URnUbURnURU5 OSnXAlXQlX!lX1lUR[
R:XaX1lU$X1lUb)UR-U5 W(aUR/U5 U$)	Nz3cannot rename nodes from other documents;
expected z,
found z8renameNode() only applies to element and attribute nodesr�rFrzillegal use of 'xmlns' prefixz$illegal use of the 'xmlns' attribute)rwrKrLrr'rrpr0r�rr�rrr�rr�r�r�r�r�r�r�r�r)rr�r�r�r�r�r�is_ids        r�
renameNode�Document.renameNode8s����?�?�$�&��'�'�*�*�,0�!�/�/�C�D�
D�
�:�:�d�/�/��1D�1D�E�E��'�'�)�)�J�L�
L��?�*��d�{�$(�J�J�s�A�$6�!����'�&�#�'�'�*A�*A�A��'�'�.�.�7�9�9���g�o�&�#�'�'�*A�*A�A��*�*��(;�(;�;��'�'�.�.�>�@�@��� �	��F��I��:�:��,�,�,��n�n�G��"������+�+�A�.���G��� ��%���
��:�:��*�*�*��I����F��"��(�(��+���.�.�q�1��r)r?r;r=r3rr`)rrrNN)?r�r�r�r�r/rrpr�r�r�rJrr|r(r'r�r�r�rOrYrXr�rrr�rWrPrJrr�r"r�rGrKr�rQrTrXr�rQrPr]rnryrjrmrrrvryr}r�rr�r�r�r�r�r�r�r�r)r�r�rrrrrsE��@�I��*�*�D�,L�,L��*�*�D�,C�,C�E��'�(�N��!�!�H��H��I��J��J�$(�(�O�k�
�N��H��J��G����L��K��O�%�(�#�� ��!��(��,� 
��
��*�
�
���
�
����
�
8�tG�7�@�-�KO� �;� 3rrr`z#Top-level element of this document.c�T�URRU5(a%[RRR
nO$[RRRnUR[R:Xa�URURUR5nURR5HknURURURUR 5 UR#URUR$5nUR&UlMm U(a0UR(H n[+XqU5nUR-U5 M" GOUR[R.:XaIUR15nU(a0UR(H n[+XqU5nUR-U5 M" GO�UR[R2:XaUR5UR65nGOsUR[R8:XaUR;UR65nGO8UR[R<:Xa(UR?UR@UR65nGO�UR[RB:XaUREUR65nGO�UR[RF:Xa@URIURUR5nSUlUR UlGOYUR[RJ:XGaURULde[RRRnURLROURPURRURT5nX$lU(Ga�/URVl,/URZl,URZRXH~n	[]U	RU	RRU	RT5n
X*lURZRXR_U
5 [aU	S5(dMlU	RcX9U
5 M� URVRXH�n[eURURRURTURf5nURhUl4URjUl5URlUl6X,lURVRXR_U5 [aUS5(dM�URcX;U5 M� O+[RRoS[qU5-5e[aUS5(aURcX0U5 U$)zc
Clone a node and give it the new owner document.
Called by Node.cloneNode and Document.importNode
Tr�zCannot clone node %s)9rwr�rKrLr�r��
NODE_IMPORTEDr'rrprr�r�r�rFr�rr�r�r�r3rvrQrGrjrlrrrmr�rvr�r}r3r�ryr0r�r�r|rr�r�r�r�r�r�r�ror�r�r�r�r�rr�r�rN)
r]rx�newOwnerDocumentr�r�r�r�rsr\r�r�r�r�s
             rrvrvqs
��
���$�$�%5�6�6��G�G�+�+�7�7�	��G�G�+�+�9�9�	��}�}��)�)�)� �0�0��1B�1B�15���@���O�O�*�*�,�D�� � ��!2�!2�D�M�M�4�:�:�N��(�(��):�):�D�N�N�K�A��.�.�A�K�-�
�������-=�>���!�!�!�$�)��
���$�5�5�	5� �7�7�9���������-=�>���!�!�!�$�)��
���$�.�.�	(� �/�/��	�	�:��	
���$�1�1�	1� �3�3�D�I�I�>��	
���$�:�:�	:� �<�<�T�[�[�=A�Y�Y�H��	
���$�+�+�	+� �.�.�t�y�y�9��	
���$�-�-�	-� �2�2�4�3D�3D�37�=�=�B������j�j���	
���$�1�1�	1��!�!�)9�9�9�9��G�G�+�+�9�9�	� �/�/�B�B��I�I�t�}�}�d�m�m�5��.���"$�E�N�N��#%�E�O�O� ��^�^�(�(��#�A�J�J��
�
�A�J�J�G��)9�&����$�$�+�+�H�5��1�7�8�8��-�-�i�H�E�)��]�]�'�'����
�
�A�J�J��
�
� !���0��()�(8�(8��%�"#�*�*���!"�����'7�$����#�#�*�*�6�2��1�7�8�8��-�-�i�F�C�(���g�g�%�%�&<�t�D�z�&I�J�J�
�t�.�/�/��$�$�Y�e�<��Lrc�V�URSS5n[U5S:XaU$SUS4$)Nr�rF�r)r�r<)r��fieldss  rr�r��s4��
�
 �
 ��a�
(�F�
�6�{�a���
��f�Q�i� � rc�|�U"U0UD6nUR5upEURU5 UR5 U$r1)�getEvent�
expandNoder<)�func�args�kwargs�events�toktype�rootNodes      r�_do_pulldom_parser��s<��
�4�
"�6�
"�F����)��G�
���h��
�L�L�N��Orc��UcU(dSSKJn URU5$SSKJn [	URU4XS.5$)z3Parse a file into a DOM by filename or file object.r��expatbuilder��pulldom)�parser�bufsize)�xml.domr��parser�r�)�filer�r�r�r�s     rr�r��s=��
�~�g�(��!�!�$�'�'�#� �������2�4�	4rc�v�UcSSKJn URU5$SSKJn [	URU4SU05$)z&Parse a file into a DOM from a string.rr�r�r�)r�r��parseStringr�r�)�stringr�r�r�s    rr�r��s?��
�~�(��'�'��/�/�#� ��!4�!4�v�i�"*�F�!3�5�	5rc���U(a\[U[5(a[R"U5nUH+up[R
R
X5(aM+ g [R
$r1)rMrNr�_parse_feature_stringrr|r})�features�f�vs   r�getDOMImplementationr��sV����h��$�$��3�3�H�=�H��D�A��*�*�5�5�a�;�;����"�"�"rr�r1)7r�r#r�rKrrrr�xml.dom.minicompat�xml.dom.xmlbuilderrr	rLrrpr�rU�defpropertyrar�r�r�r�r�r��objectr4�
AttributeListr�r*r�r�rr1rIr�r�rr�r�r�r�r�r�r�rr!rVrrvr�r�r�r�r�rrr�<module>r�s����"
��J�J� �>� �G�G�L�L�5�5��G�G�L�L�>�>�@��t�3�7�7�<�<�t�l�D�,�$@�A��D�+�$?�@��D�+�$H�I����.��%�t�%�$y8�4�y8�v�D�&�$F�G��D�+�$M�N��D�,�$E�F�a?�6�a?�F�L�(�6�8��
��v��(�D�$���L"�d�L"�\�G�\�<�>��G�[�7�9�	 �&;�&;�RN�I�t�N�4EC�I�t�EC�N�M�8�)E�F�S+�=�S+�j�D�0�.�/��D�+�@�B���B�m�B�	3�4�	3�<�V�<�|�*�H�8�:�
�
�:�:�y�$�:�x&9�Z��&9�P8�z�9�d�8�M�+�M�^(�&�(�T2�Q�t�Z�Q�f
�H�'�5�7�O�d!��4�5�#r

?>