+
    üÐj£‘  ã            
      ó´  € R t ^ RIHt ^ RIt^ RIt^ RIHtHt ^ RIH	t	H
t
 ^ RIHt ^ RIHt ^ RIHtHt RP%                  ]
! ]	! R	^^
^ 4      4      4      t]P(                  ! ]]^R
7       R tR tR tR/t]! ]4      t]P9                  4        ]R0,           t]! ]4      t]P9                  4        ]3R lt]3R lt  ! R R]!4      t" ! R R4      t# ! R R]#4      t$ ! R R]#4      t% ! R R]#4      t& ! R R]&4      t' ! R R]&4      t( ! R R]&4      t)R  t*]*! 4       t+ ! R! R"]&4      t, ! R# R$]#4      t-R% t.R& t/ ! R' R(]4      t0R) t1R* t2R+ t3R, t4 ! R- R.4      t5R# )1aÂ  
Micro Document Object Model: a partial DOM implementation with SUX.

This is an implementation of what we consider to be the useful subset of the
DOM.  The chief advantage of this library is that, not being burdened with
standards compliance, it can remain very stable between versions.  We can also
implement utility 'pythonic' ways to access and mutate the XML tree.

Since this has not subjected to a serious trial by fire, it is not recommended
to use this outside of Twisted applications.  However, it seems to work just
fine for the documentation generator, which parses a fairly representative
sample of XML.

Microdom mainly focuses on working with HTML and XHTML.

This module is now deprecated.
)ÚannotationsN)ÚBytesIOÚStringIO)ÚVersionÚgetVersionString)ÚioType)ÚInsensitiveDict)Ú
ParseErrorÚ	XMLParserz)twisted.web.microdom was deprecated at {}ÚTwisted)Ú
stacklevelc                ó¾   € . pVP                   pV .p\        V4      ^ 8”  d<   VP                  ^ 4      pVP                  V8X  d	   V! V4       VP                  VR&   KK  V# )a  
Return a list of all child elements of C{iNode} with a name matching
C{name}.

Note that this implementation does not conform to the DOM Level 1 Core
specification because it may return C{iNode}.

@param iNode: An element at which to begin searching.  If C{iNode} has a
    name matching C{name}, it will be included in the result.

@param name: A C{str} giving the name of the elements to return.

@return: A C{list} of direct or indirect child elements of C{iNode} with
    the name C{name}.  This may include C{iNode}.
ºNé    N)ÚappendÚlenÚpopÚnodeNameÚ
childNodes©ÚiNodeÚnameÚmatchesÚmatches_appendÚsliceÚcs   &&    Ú6/usr/lib/python3/dist-packages/twisted/web/microdom.pyÚgetElementsByTagNamer   )   sW   € ð  €GØ—^‘^€NØˆG€EÜ
ˆe‹*�qŒ.Ø�I‰I�a‹LˆØ�:‰:˜ÔÙ˜1ÔØ—L‘Lˆˆb‹	Ø€Nó    c                óú   € VP                  4       p. pVP                  pV .p\        V4      ^ 8”  dJ   VP                  ^ 4      pVP                  P                  4       V8X  d	   V! V4       VP
                  VR&   KY  V# )r   r   )Úlowerr   r   r   r   r   r   s   &&    r   ÚgetElementsByTagNameNoCaser!   D   si   € Ø�:‰:‹<€DØ€GØ—^‘^€NØˆG€EÜ
ˆe‹*�qŒ.Ø�I‰I�a‹LˆØ�:‰:×ÑÓ Ô%Ù˜1ÔØ—L‘Lˆˆb‹	Ø€Nr   c                óL   a € \        S 4      \        8X  d	   V 3R  lpV# V 3R lpV# )c                óx   <€ \        V \        4      '       d   V P                  R 4      p SP                  V 4       R# ©zutf-8N)Ú
isinstanceÚstrÚencodeÚwrite©ÚsÚstreams   &€r   ÚwÚ_streamWriteWrapper.<locals>.wT   s)   ø€ Ü˜!œS×!Ò!Ø—H‘H˜WÓ%�Ø�L‰L˜ŽOr   c                óx   <€ \        V \        4      '       d   V P                  R 4      p SP                  V 4       R# r$   )r%   ÚbytesÚdecoder(   r)   s   &€r   r,   r-   [   s)   ø€ Ü˜!œU×#Ò#Ø—H‘H˜WÓ%�Ø�L‰L˜ŽOr   )r   r/   )r+   r,   s   f r   Ú_streamWriteWrapperr1   Q   s'   ø€ Üˆfƒ~œÔõ	ð €Hõ	ð
 €Hr   c                ó>   € V F  w  r#V P                  W24      p K  	  V # )z)
Perform the exact opposite of 'escape'.
©Úreplace©ÚtextÚcharsr*   Úhs   &&  r   Úunescaper9   r   ó#   € ó ‰ˆØ�|‰|˜AÓ!Šñ à€Kr   c                ó>   € V F  w  r#V P                  W#4      p K  	  V # )z3
Escape a few XML special chars with XML entities.
r3   r5   s   &&  r   Úescaper<   {   r:   r   c                  ó(   € ] tR t^„tR tR R ltRtR# )ÚMismatchedTagsc                	óh   € WW6WtV3w  V n         V n        V n        V n        V n        V n        V n        R # ©N)ÚfilenameÚexpectÚgotÚbegLineÚbegColÚendLineÚendCol)ÚselfrA   rB   rC   rF   rG   rD   rE   s   &&&&&&&&r   Ú__init__ÚMismatchedTags.__init__…   s8   € ð ˜s¨V¸fÐEñ	
ØŒMØŒKØŒHØŒLØŒKØŒLØŽKr   c               ó   € V ^8„  d   QhRR/# ©é   Úreturnr&   © )Úformats   "r   Ú__annotate__ÚMismatchedTags.__annotate__�   s   € ÷ 
ñ 
˜ñ 
r   c                	ó®   € R V P                   : RV P                  : RV P                  : RV P                  : RV P                  : RV P
                  : 2# )zexpected </z	>, got </z> line: z col: z, began line: )rB   rC   rF   rG   rD   rE   ©rH   s   &r   Ú__str__ÚMismatchedTags.__str__�   s8   � ð
 —”Ø—”Ø—”Ø—”Ø—”Ø—“ð	ð	
r   )rE   rD   rG   rF   rB   rA   rC   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rI   rU   Ú__static_attributes__rO   r   r   r>   r>   „   s   † ò	F÷
ñ 
r   r>   c                  óž   € ] tR t^ŸtR tRR ltR tRRR^ / R3R ltRRR^ / R3R ltRR lt	RR lt
RR	 ltR
 tR tR tR tR tR tR tRtR# )ÚNodeNc                	ó    € Wn         . V n        R # r@   )Ú
parentNoder   )rH   r_   s   &&r   rI   ÚNode.__init__¢   s   € Ø$ŒØˆŽr   c                óê   € \        V P                  4      \        VP                  4      8w  d   R# \        V P                  VP                  4       F  w  r#VP                  V4      '       d   K   R# 	  R# )zÔ
Compare this node to C{other}.  If the nodes have the same number of
children and corresponding children are equal to each other, return
C{True}, otherwise return C{False}.

@type other: L{Node}
@rtype: C{bool}
FT)r   r   ÚzipÚisEqualToNode)rH   ÚotherÚaÚbs   &&  r   rc   ÚNode.isEqualToNode¦   sW   € ô ˆt�‰Ó¤3 u×'7Ñ'7Ó#8Ô8ÙÜ˜Ÿ™¨×)9Ñ)9Ö:‰DˆAØ—?‘? 1×%Ô%Úñ ;ñ r   Ú c                	ó   € \        4       hr@   ©ÚNotImplementedError)rH   r+   ÚindentÚ	addindentÚnewlÚstripÚ
nsprefixesÚ	namespaces   &&&&&&&&r   ÚwritexmlÚNode.writexml¶   s   € ô "Ó#Ð#r   c           	     	ób   € \        4       pV P                  WqW#WEV4       VP                  4       pV# r@   )r   rr   Úgetvalue)	rH   rl   rm   rn   ro   rp   rq   r*   Úrvs	   &&&&&&&  r   ÚtoxmlÚ
Node.toxmlÂ   s-   € ô ‹JˆØ�‰�a °%ÀYÔOØ�Z‰Z‹\ˆØˆ	r   c                	ó(   € V P                  WW4V4      # r@   )rr   )rH   r+   rl   rm   rn   ro   s   &&&&&&r   ÚwriteprettyxmlÚNode.writeprettyxmlÊ   s   € Ø�}‰}˜V¨Y¸eÓDÐDr   c                	ó&   € V P                  WW44      # r@   )rw   )rH   rl   rm   rn   ro   s   &&&&&r   ÚtoprettyxmlÚNode.toprettyxmlÍ   s   € Ø�z‰z˜&¨TÓ9Ð9r   c                	ó   € \        4       hr@   rj   ©rH   ÚdeepÚparents   &&&r   Ú	cloneNodeÚNode.cloneNodeÐ   s   € Ü!Ó#Ð#r   c                	ó.   € V P                   '       d   ^# ^ # ©é   ©r   rT   s   &r   ÚhasChildNodesÚNode.hasChildNodesÓ   s   € Ø�?�?ˆ?Ùár   c                óŠ   € \        V\        4      '       g   \        R4      hV P                  P	                  V4       Wn        R# )z²
Make the given L{Node} the last child of this node.

@param child: The L{Node} which will become a child of this node.

@raise TypeError: If C{child} is not a C{Node} instance.
úexpected Node instanceN)r%   r]   Ú	TypeErrorr   r   r_   ©rH   Úchilds   &&r   ÚappendChildÚNode.appendChildÙ   s5   € ô ˜%¤×&Ò&ÜÐ4Ó5Ð5Ø�‰×Ñ˜uÔ%ØÖr   c                óì   € \        V\        4      '       d   \        V\        4      '       g   \        R4      hV P                  P	                  V4      pWn        V P                  P                  W14       V# )aT  
Make the given L{Node} C{new} a child of this node which comes before
the L{Node} C{ref}.

@param new: A L{Node} which will become a child of this node.

@param ref: A L{Node} which is already a child of this node which
    C{new} will be inserted before.

@raise TypeError: If C{new} or C{ref} is not a C{Node} instance.

@return: C{new}
rŒ   )r%   r]   r�   r   Úindexr_   Úinsert)rH   ÚnewÚrefÚis   &&& r   ÚinsertBeforeÚNode.insertBeforeæ   sY   € ô ˜#œt×$Ò$¬J°s¼D×,AÒ,AÜÐ4Ó5Ð5Ø�O‰O×!Ñ! #Ó&ˆØŒØ�‰×Ñ˜qÔ&Øˆ
r   c                ó¬   € \        V\        4      '       g   \        R4      hWP                  9   d#   V P                  P	                  V4       RVn        V# )a  
Remove the given L{Node} from this node's children.

@param child: A L{Node} which is a child of this node which will no
    longer be a child of this node after this method is called.

@raise TypeError: If C{child} is not a C{Node} instance.

@return: C{child}
rŒ   N)r%   r]   r�   r   Úremover_   rŽ   s   &&r   ÚremoveChildÚNode.removeChildû   sF   € ô ˜%¤×&Ò&ÜÐ4Ó5Ð5Ø—O‘OÔ#Ø�O‰O×"Ñ" 5Ô)Ø#ˆEÔØˆr   c                ó  € \        V\        4      '       d   \        V\        4      '       g   \        R4      hVP                  V Jd   \	        R4      hWP
                  V P
                  P                  V4      &   RVn        Wn        R# )a–  
Replace a L{Node} which is already a child of this node with a
different node.

@param newChild: A L{Node} which will be made a child of this node.

@param oldChild: A L{Node} which is a child of this node which will
    give up its position to C{newChild}.

@raise TypeError: If C{newChild} or C{oldChild} is not a C{Node}
    instance.

@raise ValueError: If C{oldChild} is not a child of this C{Node}.
rŒ   z$oldChild is not a child of this nodeN)r%   r]   r�   r_   Ú
ValueErrorr   r“   )rH   ÚnewChildÚoldChilds   &&&r   ÚreplaceChildÚNode.replaceChild  sl   € ô ˜(¤D×)Ò)´¸HÄd×1KÒ1KÜÐ4Ó5Ð5Ø×Ñ dÓ*ÜÐCÓDÐDØ;C�‰˜Ÿ™×-Ñ-¨hÓ7Ñ8Ø"ˆÔØ"Ör   c                	ó(   € V P                   R,          # )r‡   éÿÿÿÿrˆ   rT   s   &r   Ú	lastChildÚNode.lastChild$  s   € Ø�‰˜rÕ"Ð"r   c                	ób   € \        V P                  4      '       d   V P                  ^ ,          # R# ©r   N)r   r   rT   s   &r   Ú
firstChildÚNode.firstChild'  s#   € Üˆt�‰×ÒØ—?‘? 1Õ%Ð%Ùr   )r   r_   r@   )rh   Ú Ú
r   r©   )rW   rX   rY   rZ   r   rI   rc   rr   rw   rz   r}   rƒ   r‰   r�   r˜   rœ   r¢   r¦   rª   r[   rO   r   r   r]   r]   Ÿ   sr   † Ø€Hôòð& ØØØØØô
$ð  2¨B°aÀBÐRTôôEô:ô$òò òò*ò$#ò.#ör   r]   c                  óŽ   € ] tR tRt$ RR ltRR ltRtR]R&   R t]t	]
R 4       tR	 tR
R
R
^ / R
3R ltR tR tR tR tR tRtR# )ÚDocumenti9  Nc                	óf   € \         P                  V 4       V'       d   V P                  V4       R # R # r@   )r]   rI   r�   )rH   ÚdocumentElements   &&r   rI   ÚDocument.__init__:  s$   € Ü�‰�dÔßØ×Ñ˜_Ö-ñ r   c                	óÀ   € \        4       pV P                  Vn        V'       d   V P                  P                  ^V 4      pMV P                  pVP	                  V4       V# r†   )r¯   Údoctyper±   rƒ   r�   )rH   r�   r‚   ÚdÚnewEls   &&&  r   rƒ   ÚDocument.cloneNode?  sK   € Ü‹JˆØ—L‘LˆŒ	ßØ×(Ñ(×2Ñ2°1°dÓ;‰Eà×(Ñ(ˆEØ	�‰�eÔØˆr   z
None | strr´   c                	ón   € V P                   VP                   8H  ;'       d    \        P                  W4      # r@   )r´   r]   rc   ©rH   Úns   &&r   ÚisEqualToDocumentÚDocument.isEqualToDocumentK  s(   € Ø—‘ §	¡	Ñ)×JÐJ¬t×/AÑ/AÀ$Ó/JÐJr   c                	ó(   € V P                   ^ ,          # ©r   rˆ   rT   s   &r   r±   ÚDocument.documentElementP  s   € à�‰˜qÕ!Ð!r   c                ój   € V P                   '       d   \        R4      h\        P                  W4       R# )zÛ
Make the given L{Node} the I{document element} of this L{Document}.

@param child: The L{Node} to make into this L{Document}'s document
    element.

@raise ValueError: If this document already has a document element.
zOnly one element per document.N)r   rŸ   r]   r�   rŽ   s   &&r   r�   ÚDocument.appendChildT  s'   € ð �?�?ˆ?ÜÐ=Ó>Ð>Ü×Ñ˜Ö%r   rh   c           	     	óÊ   € \        V4      pV! R V,           4       V P                  '       d   V! RV P                   RV 24       V P                  P                  WW4WVV4       R# )z<?xml version="1.0"?>z
<!DOCTYPE Ú>N)r1   r´   r±   rr   ©	rH   r+   rl   rm   rn   ro   rp   rq   r,   s	   &&&&&&&& r   rr   ÚDocument.writexmla  s[   € ô   Ó'ˆá	Ð
! DÕ
(Ô)Ø�<�<ˆ<Ù�
˜4Ÿ<™<˜.¨¨$¨Ð0Ô1Ø×Ñ×%Ñ%Ø˜I¨UÀ	ö	
r   c                	ó   € \        V3/ VB # r@   )ÚElement)rH   r   Úkws   &&,r   ÚcreateElementÚDocument.createElementu  s   € Ü�tÑ"˜rÑ"Ð"r   c                	ó   € \        V4      # r@   )ÚText©rH   r6   s   &&r   ÚcreateTextNodeÚDocument.createTextNodex  s   € Ü�D‹zÐr   c                	ó   € \        V4      # r@   )ÚCommentrÍ   s   &&r   ÚcreateCommentÚDocument.createComment{  s   € Ü�t‹}Ðr   c                	óf   € V P                   P                  '       d   \        W4      # \        W4      # r@   )r±   ÚcaseInsensitiver!   r   ©rH   r   s   &&r   r   ÚDocument.getElementsByTagName~  s*   € Ø×Ñ×/×/Ð/Ü-¨dÓ9Ð9Ü# DÓ/Ð/r   c                	ó  € V P                   R ,          pV'       dm   VP                  ^ 4      pVP                   '       d   VP                  VP                   4       \        VR4      '       g   KZ  VP	                  R4      V8X  g   Kr  V# R# ):NNNÚgetAttributeÚidN)r   r   ÚextendÚhasattrrÙ   )rH   rÚ   r   Únodes   &&  r   ÚgetElementByIdÚDocument.getElementByIdƒ  se   € Ø—_‘_ QÕ'ˆ
ßØ—>‘> !Ó$ˆDØ��ˆØ×!Ñ! $§/¡/Ô2Ü�t˜^×,Ô,°×1BÑ1BÀ4Ó1HÈBÖ1NØ�ñ r   rO   r@   r©   )rW   rX   rY   rZ   rI   rƒ   r´   Ú__annotations__r»   rc   Úpropertyr±   r�   rr   rÉ   rÎ   rÒ   r   rÞ   r[   rO   r   r   r¯   r¯   9  sn   ‡ ô.ô
ð €GˆZÓòKð &€Màñ"ó ð"ò&ð  ØØØØØô
ò(#òòò0ö
r   r¯   c                  óJ   € ] tR tRtR	R ltR t]tRRR^ / R3R ltR
R ltRt	R# )ÚEntityReferencei�  Nc                	ót   € \         P                  W4       Wn        R V,           R,           ;V n        V n        R# )Ú&Ú;N)r]   rI   ÚerefÚ	nodeValueÚdata)rH   rç   r_   s   &&&r   rI   ÚEntityReference.__init__Ž  s*   € Ü�‰�dÔ'ØŒ	Ø%(¨4¥Z°#Õ%5Ð5ˆŒ˜žr   c                	ó¦   € \        V\        4      '       g   ^ # V P                  VP                  8H  ;'       d    V P                  VP                  8H  # r¾   )r%   rã   rç   rè   r¹   s   &&r   ÚisEqualToEntityReferenceÚ(EntityReference.isEqualToEntityReference“  s:   € Ü˜!œ_×-Ò-ÙØ—	‘	˜QŸV™VÑ#×HÐH¨$¯.©.¸A¿K¹KÑ*GÐHr   rh   c                	óN   € \        V4      pV! R V P                  ,           4       R# )rh   N©r1   rè   rÄ   s	   &&&&&&&& r   rr   ÚEntityReference.writexmlš  s   € ô   Ó'ˆÙ	ˆ"ˆt�~‰~Õ
Ör   c                	ó.   € \        V P                  V4      # r@   )rã   rç   r€   s   &&&r   rƒ   ÚEntityReference.cloneNode§  s   € Ü˜tŸy™y¨&Ó1Ð1r   )ré   rç   rè   r@   r©   )
rW   rX   rY   rZ   rI   rì   rc   rr   rƒ   r[   rO   r   r   rã   rã   �  s7   † ô6ò
Ið
 -€Mð
 ØØØØØô÷2ð 2r   rã   c                  ó*   € ] tR tRtRR ltR t]tRtR# )ÚCharacterDatai«  Nc                	óZ   € \         P                  W4       V;V n        ;V n        V n        R # r@   )r]   rI   Úvalueré   rè   )rH   ré   r_   s   &&&r   rI   ÚCharacterData.__init__¬  s#   € Ü�‰�dÔ'Ø26Ð6ˆŒ
Ð6�T”Y ¦r   c                	ó4   € V P                   VP                   8H  # r@   )rö   r¹   s   &&r   ÚisEqualToCharacterDataÚ$CharacterData.isEqualToCharacterData°  s   € Ø�z‰z˜QŸW™WÑ$Ð$r   )ré   rè   rö   r@   )rW   rX   rY   rZ   rI   rù   rc   r[   rO   r   r   rô   rô   «  s   † ô7ò%ð +„Mr   rô   c                  ó:   € ] tR tRtRtRRR^ / R3R ltRR ltRtR# )	rÑ   i¶  z
A comment node.
rh   c                	óL   € \        V4      pV P                  p	V! R V	 R24       R# )z<!--z-->N)r1   ré   )
rH   r+   rl   rm   rn   ro   rp   rq   r,   Úvals
   &&&&&&&&  r   rr   ÚComment.writexml»  s'   € ô   Ó'ˆØ�i‰iˆÙ	ˆD���Sˆ/Ör   Nc                	ó.   € \        V P                  V4      # r@   )rÑ   rè   r€   s   &&&r   rƒ   ÚComment.cloneNodeÉ  s   € Ü�t—~‘~ vÓ.Ð.r   rO   r©   )rW   rX   rY   rZ   Ú__doc__rr   rƒ   r[   rO   r   r   rÑ   rÑ   ¶  s*   † ñð ØØØØØô÷/ð /r   rÑ   c                  óR   € ] tR tRtRR ltR tRR ltRRR^ / R3R ltR R	 ltR
t	R# )rÌ   iÍ  Nc                	ó>   € \         P                  WV4       W0n        R # r@   )rô   rI   Úraw)rH   ré   r_   r  s   &&&&r   rI   ÚText.__init__Î  s   € Ü×Ñ˜t¨:Ô6ØŽr   c                ón   € \         P                  W4      ;'       d    V P                  VP                  8H  # )z†
Compare this text to C{text}.  If the underlying values and the C{raw}
flag are the same, return C{True}, otherwise return C{False}.
)rô   rc   r  ©rH   rd   s   &&r   rc   ÚText.isEqualToNodeÒ  s*   € ô
 ×*Ñ*¨4Ó7×QÐQ¸D¿H¹HÈÏ	É	Ñ<QÐQr   c                	óB   € \        V P                  W P                  4      # r@   )rÌ   rè   r  r€   s   &&&r   rƒ   ÚText.cloneNodeÙ  s   € Ü�D—N‘N F¯H©HÓ5Ð5r   rh   c                	ó~  € \        V4      pV P                  '       d9   V P                  p	\        V	\        4      '       g   \	        V P                  4      p	M_V P                  p
\        V
\        4      '       g   \	        V
4      p
V'       d    R P                  V
P                  4       4      p
\        V
4      p	V! V	4       R# )r¬   N)r1   r  rè   r%   r&   ÚjoinÚsplitr<   )rH   r+   rl   rm   rn   ro   rp   rq   r,   rý   Úvs   &&&&&&&&   r   rr   ÚText.writexmlÜ  s‚   € ô   Ó'ˆØ�8�8ˆ8Ø—.‘.ˆCÜ˜c¤3×'Ò'Ü˜$Ÿ.™.Ó)�øà—‘ˆAÜ˜a¤×%Ò%Ü˜“F�ßØ—H‘H˜QŸW™W›YÓ'�Ü˜“)ˆCÙ	ˆ#Žr   c               ó   € V ^8„  d   QhRR/# rL   rO   )rP   s   "r   rQ   ÚText.__annotate__ô  s   € ÷ 6ñ 6˜#ñ 6r   c                	óH   € R \        V P                  4      ,          R,           # )zText(%sÚ))Úreprrè   rT   s   &r   Ú__repr__ÚText.__repr__ô  s   € Øœ4 §¡Ó/Õ/°#Õ5Ð5r   ©r  )Nr   r©   )
rW   rX   rY   rZ   rI   rc   rƒ   rr   r  r[   rO   r   r   rÌ   rÌ   Í  s5   † ôòRô6ð ØØØØØô÷06ñ 6r   rÌ   c                  ó6   € ] tR tRtRR ltRRR^ / R3R ltRtR# )ÚCDATASectioniø  Nc                	ó.   € \        V P                  V4      # r@   )r  rè   r€   s   &&&r   rƒ   ÚCDATASection.cloneNodeù  s   € Ü˜DŸN™N¨FÓ3Ð3r   rh   c                	ón   € \        V4      pV! R 4       V! RV P                  ,           4       V! R4       R# )z	<![CDATA[rh   z]]>Nrï   rÄ   s	   &&&&&&&& r   rr   ÚCDATASection.writexmlü  s-   € ô   Ó'ˆÙ	ˆ+ŒÙ	ˆ"ˆt�~‰~Õ
ÔÙ	ˆ%Žr   rO   r©   )rW   rX   rY   rZ   rƒ   rr   r[   rO   r   r   r  r  ø  s%   † ô4ð ØØØØØ÷ð r   r  c               #  óN   "  € ^ p  R\        V 4      ,           x € V ^,           p K   5i)r   Úp)r&   )r—   s    r   Ú
_genprefixr     s$   é € Ø	€AØ
Ø”C˜“F�lÒØ��EŠùs   ‚#%c                  ó   € ] tR tRtRtRtR# )Ú_Attri  z#Support class for getAttributeNode.rO   N)rW   rX   rY   rZ   r  r[   rO   r   r   r"  r"    s   † Ý)r   r"  c                  ó´   € ] tR tRt^ t^tRtRR ltR tR t	R t
R tRR ltR	 tR
 tRR ltRR ltR tR tR tR tRRR^ / R3R ltR R ltR R ltRtR# )rÇ   i  Nc	                	óÈ  € \         P                  W4       T;'       g    V'       * V n        W`n        V'       g   VP	                  4       pVf	   / V n        MAW n        V P
                  P                  4        F  w  rš\        V
4      V P
                  V	&   K  	  V'       d   \        V P
                  VR7      V n        V;V n	        ;V n
        V n        W@n        WPn        W€n        R # )N)Úpreserve)r]   rI   ÚpreserveCaserÕ   r    Ú
attributesÚitemsr9   r   Ú
endTagNamer   ÚtagNameÚ	_filenameÚ_markposrq   )rH   r*  r'  r_   rA   ÚmarkposrÕ   r&  rq   Úkr  s   &&&&&&&&&  r   rI   ÚElement.__init__  s¯   € ô 	�‰�dÔ'Ø(×?Ð?°Ô,?ˆÔØ.ÔßØ—m‘m“oˆGØÒØ ˆD�Oà(ŒOØŸ™×-Ñ-Ö/‘�Ü%-¨a£[�—‘ Ó"ñ 0÷ Ü-¨d¯o©oÈÔUˆDŒOà9@Ð@ˆŒÐ@˜$œ-¨$¬,Ø!ŒØŒØ"Žr   c                	óh   € V P                   f	   Wn         R # V P                   P                  V4       R # r@   )rp   Úupdate)rH   Úpfxss   &&r   ÚaddPrefixesÚElement.addPrefixes>  s#   € Ø�?‰?Ò"Ø"ŽOà�O‰O×"Ñ" 4Ö(r   c                	óV   € V P                   '       g   VP                  4       pWn        R # r@   )r&  r    r)  )rH   r)  s   &&r   ÚendTagÚElement.endTagD  s!   € Ø× × Ð Ø#×)Ñ)Ó+ˆJØ$Žr   c                	óF  € V P                   '       dW   V P                  VP                  8H  ;'       d6    V P                  P                  4       VP                  P                  4       8H  # V P                  VP                  8H  ;'       d    V P                  VP                  8H  # r@   )rÕ   r'  r   r    r¹   s   &&r   ÚisEqualToElementÚElement.isEqualToElementI  sy   € Ø××ÐØ—O‘O q§|¡|Ñ3÷ ð Ø—‘×#Ñ#Ó%¨¯©×)9Ñ)9Ó);Ñ;ðð —‘ 1§<¡<Ñ/×RÐR°d·m±mÀqÇzÁzÑ6QÐRr   c                ó*  € V P                   P                  4       VP                   P                  4       8H  ;'       dX    V P                  VP                  8H  ;'       d7    V P                  VP                  8H  ;'       d    \        P                  W4      # )z¤
Compare this element to C{other}.  If the C{nodeName}, C{namespace},
C{attributes}, and C{childNodes} are all the same, return C{True},
otherwise return C{False}.
)r   r    rq   r'  r]   rc   r  s   &&r   rc   ÚElement.isEqualToNodeP  s{   € ð �M‰M×ÑÓ! U§^¡^×%9Ñ%9Ó%;Ñ;÷ 0ð 0Ø—‘ %§/¡/Ñ1÷0ð 0à—‘ 5×#3Ñ#3Ñ3÷0ð 0ô ×"Ñ" 4Ó/ð		
r   c                	óL  € \        V P                  VV P                  V P                  V P                  R 7      pVP
                  P                  V P
                  4       V'       d3   V P                   Uu. uF  qDP                  ^V4      NK  	  upVn        V# . Vn        V# u upi ))r_   rq   r&  rÕ   )	rÇ   r*  rq   r&  rÕ   r'  r1  r   rƒ   )rH   r�   r‚   Úcloner�   s   &&&  r   rƒ   ÚElement.cloneNode]  sŒ   € ÜØ�L‰LØØ—n‘nØ×*Ñ*Ø ×0Ñ0ô
ˆð 	×Ñ×Ñ §¡Ô0ßØGKÇÂÓWÁ¸e§¡°°5Ö 9ÁÑWˆEÔð ˆð  "ˆEÔØˆùò  Xs   Á4B!c                	óR   € V P                   '       d   \        W4      # \        W4      # r@   )rÕ   r!   r   rÖ   s   &&r   r   ÚElement.getElementsByTagNamel  s$   € Ø××ÐÜ-¨dÓ9Ð9Ü# DÓ/Ð/r   c                	ó   € ^# r†   rO   rT   s   &r   ÚhasAttributesÚElement.hasAttributesq  s   € Ùr   c                	ó8   € V P                   P                  W4      # r@   )r'  Úget)rH   r   Údefaults   &&&r   rÙ   ÚElement.getAttributet  s   € Ø�‰×"Ñ" 4Ó1Ð1r   c                	ó¨   € W3pW@P                   9   d   V P                   V,          # WP                  8X  d   V P                   P                  W#4      # V# r@   )r'  rq   rF  )rH   Únsr   rG  Únsks   &&&& r   ÚgetAttributeNSÚElement.getAttributeNSw  sF   € ØˆjˆØ—/‘/Ô!Ø—?‘? 3Õ'Ð'Ø—‘ÔØ—?‘?×&Ñ& tÓ5Ð5Øˆr   c                	ó8   € \        V P                  V4      V 4      # r@   )r"  rÙ   rÖ   s   &&r   ÚgetAttributeNodeÚElement.getAttributeNode  s   € Ü�T×&Ñ& tÓ,¨dÓ3Ð3r   c                	ó"   € W P                   V&   R # r@   ©r'  )rH   r   Úattrs   &&&r   ÚsetAttributeÚElement.setAttribute‚  s   € Ø $�‰˜Ór   c                	óD   € WP                   9   d   V P                   V R # R # r@   rR  rÖ   s   &&r   ÚremoveAttributeÚElement.removeAttribute…  s   € Ø—?‘?Ô"Ø—‘ Ò%ñ #r   c                	ó   € WP                   9   # r@   rR  rÖ   s   &&r   ÚhasAttributeÚElement.hasAttribute‰  s   € Ø—‘Ñ&Ð&r   rh   c           
     óä  a€ RpRp	Rp
V P                   '       g   V P                  V n        \        V4      pV P                  '       d=   V P                  P                  4       pVP                  4        F  pWÜ9   g   K  WÍ K  	  M/ pR.pV P                  V	9   d   WB.V,           pVP                  oV3R lpV P                  pWpP                  8w  dŸ   V P                  e‘   V P                  V9   dN   W`P                  ,          pS! VR,           V P                  ,           4       VR,           V P                  ,           pMDS! V P                  4       V! RV P                  4       V P                  pMS! V P                  4       RP                  p\        V P                  P                  4       4       Fq  w  pp\        V\        4      '       dG   Vw  ppWÖ9   d
   Wm,          pM\        \         4      pVWÍ&   Vf   Q hV! VR,           V,           V4       Kb  Vf   Q hV! VV4       Ks  	  V'       dI   VP                  4        F   w  ppV'       g   K  V! RV,           V4       K"  	  VP#                  V4       TpMTpV! V! V4      4       V P$                  '       dŸ   V! R4       W#,           pV P$                   FK  pV P                  V	9   d"   V P                  V
9   d   V! V! VV34      4       VP'                  VVW4VVV4       KM  	  V P                  V	9   d   V! V! WB34      4       V! V! R	VR34      4       R# V P                  P)                  4       V9  d   V! V! R
VR34      4       R# V! R4       R# )aÂ  
Serialize this L{Element} to the given stream.

@param stream: A file-like object to which this L{Element} will be
    written.

@param nsprefixes: A C{dict} mapping namespace URIs as C{str} to
    prefixes as C{str}.  This defines the prefixes which are already in
    scope in the document at the point at which this L{Element} exists.
    This is essentially an implementation detail for namespace support.
    Applications should not try to use it.

@param namespace: The namespace URI as a C{str} which is the default at
    the point in the document at which this L{Element} exists.  This is
    essentially an implementation detail for namespace support.
    Applications should not try to use it.
Ú<c                ó0   <€ S! R V R\        V4      R34      # )r¬   z="Ú")r<   )Ú_atrÚ_valÚbexts   &&€r   Ú<lambda>Ú"Element.writexml.<locals>.<lambda>ë  s   ø€ ¡t¨S°$¸¼fÀT»lÈCÐ,PÔ'Qr   NÚ:Úxmlnsrh   zxmlns:rÃ   z</z></ú />)ÚimgÚbrÚhrÚbaseÚmetaÚlinkÚparamÚareaÚinputÚcolÚbasefontÚisindexÚframe)ÚhtmlÚheadÚbodyÚnoscriptÚinsÚdelÚh1Úh2Úh3Úh4Úh5Úh6ÚscriptÚulÚolÚdlÚprerj  Ú
blockquoteÚaddressr  ÚdivÚfieldsetÚtableÚtrÚformÚobjectr‰  ÚappletÚmap)r‹  r‚  rƒ  rv  )r&  r*  r)  r1   rp   ÚcopyÚkeysrÛ   rq   r  Úsortedr'  r(  r%   ÚtupleÚnextÚ	genprefixr1  r   rr   r    )rH   r+   rl   rm   rn   ro   rp   rq   ÚALLOWSINGLETONÚBLOCKELEMENTSÚFORMATNICELYr,   ÚnewprefixesrJ  ÚbeginÚ	writeattrr)  ÚprefixÚjrS  rý   ÚkeyÚdownprefixesÚ	newindentr�   rb  s   &&&&&&&&                 @r   rr   ÚElement.writexmlŒ  sè  ø€ ð8
ˆð
ˆð@ 2ˆð × × Ð Ø"Ÿl™lˆDŒOä Ó'ˆØ�?�?ˆ?ØŸ/™/×.Ñ.Ó0ˆKØ —o‘oÖ'�ØÖ$Ø#šò (ð ˆKà�ˆØ�<‰<˜=Ô(Ø�N UÕ*ˆEØ�|‰|ˆÜQˆ	ð
 —_‘_ˆ
àŸ™Ô&¨4¯>©>Ò+Eð �~‰~ Ô+ð $§N¡NÕ3�Ù�V˜c•\ D§L¡LÕ0Ô1à# c�\¨D¯O©OÕ;‘
ñ �T—\‘\Ô"Ù˜' 4§>¡>Ô2ð !ŸN™N‘	ñ �—‘Ôà�G‰GˆÜ §¡× 5Ñ 5Ó 7Ö8‰IˆD�#Ü˜$¤×&Ò&Ø‘��CØÔ#Ø'�^‘Fä!¤)›_�FØ&,�K‘OØ’Ð&�Ù˜& 3�,¨Õ,¨cÖ2à’Ð&�Ù˜$ Ö$ñ 9÷ Ø)×/Ñ/Ö1‘
��Fß‘6Ù˜h¨Õ/°Ö4ñ 2ð ×Ñ˜zÔ*Ø&‰Là%ˆLÙ	‰!ˆE‹(ŒØ�?�?ˆ?ÙˆcŒFØÕ*ˆIØŸœ�Ø—<‘< =Ô0°T·\±\À\Ô5QÙ‘a˜˜yÐ)Ó*Ô+Ø—‘Ø˜I y¸¸|ÈYöñ )ð �|‰|˜}Ô,Ù‘!�T�NÓ#Ô$Ù‰a��z 3Ð'Ó(Ö)Ø�\‰\×ÑÓ!¨Ô7Ù‰a�˜
 CÐ(Ó)Ö*áˆeŽHr   c               ó   € V ^8„  d   QhRR/# rL   rO   )rP   s   "r   rQ   ÚElement.__annotate__5  s   € ÷ ñ ˜#ñ r   c                	óB  € R \        V P                  4      ,          pV P                  '       d   VRV P                  : 2,          pV P                  '       d   VRV P                  : 2,          pV P                  '       d   VRV P                  : 2,          pVR,           # )z
Element(%sz, attributes=z, filename=z
, markpos=r  )r  r   r'  r+  r,  )rH   Úreps   & r   r  ÚElement.__repr__5  s|   € ØœT $§-¡-Ó0Õ0ˆØ�?�?ˆ?Ø�] 4§?¡?Ñ"5Ð6Õ6ˆCØ�>�>ˆ>Ø�[ §¡Ñ 2Ð3Õ3ˆCØ�=�=ˆ=Ø�Z §¡Ñ0Ð1Õ1ˆCØ�S�yÐr   c               ó   € V ^8„  d   QhRR/# rL   rO   )rP   s   "r   rQ   r£  ?  s   € ÷ ñ ˜ñ r   c                	ól  € R V P                   ,           pV P                  '       g   V P                  '       d
   VR,          pV P                  '       d   V\        V P                  4      ,          pV P                  '       d   VRV P                  ,          ,          pV P                  '       g   V P                  '       d
   VR,          pV P                  P                  4        F  pVRV,          ,          pK  	  V P                  4       '       d   VRV P                   ,          ,          pV# VR,          pV# )r]  z (z line %s column %sr  z %s=%rz
 >...</%s>rg  )r   r+  r,  r  r'  r(  r‰   )rH   r¥  Úitems   &  r   rU   ÚElement.__str__?  sÛ   € Ø�D—M‘MÕ!ˆØ�>�>ˆ>˜TŸ]Ÿ]˜]Ø�4�KˆCØ�>�>ˆ>Ø”4˜Ÿ™Ó'Õ'ˆCØ�=�=ˆ=ØÐ'¨$¯-©-Õ7Õ7ˆCØ�>�>ˆ>˜TŸ]Ÿ]˜]Ø�3�JˆCØ—O‘O×)Ñ)Ö+ˆDØ�8˜d•?Õ"ŠCñ ,à×Ñ×ÒØ�< $§-¡-Õ/Õ/ˆCð ˆ
ð �5�LˆCØˆ
r   )
r+  r,  r'  rÕ   r)  rq   r   rp   r&  r*  )NNNNr‡   r   Nr©   r@   )rW   rX   rY   rZ   r&  rÕ   rp   rI   r3  r6  r9  rc   rƒ   r   rC  rÙ   rL  rO  rT  rW  rZ  rr   r  rU   r[   rO   r   r   rÇ   rÇ     s‚   † Ø€LØ€OØ€Jô#ò>)ò%ò
Sò
ôò0ò
ô2ôò4ò%ò&ò'ð ØØØØØôgõR÷ñ r   rÇ   c                óV   € / pV P                  4        F  w  r#\        V4      W&   K  	  V# r@   )r(  r9   ©rµ   Úddr.  r  s   &   r   Ú_unescapeDictr®  R  s)   € Ø	€BØ—‘–	‰ˆÜ˜“ˆ‹ñ à€Ir   c                óD   € / pV P                  4        F	  w  r#W!V&   K  	  V# r@   )r(  r¬  s   &   r   Ú_reverseDictr°  Y  s%   € Ø	€BØ—‘–	‰ˆØˆ1‹ñ à€Ir   c                  ó"  € ] tR tRtRP	                  4       tRRR.RRR.RRR.RR.R. R#OR. R#OR	. R#OR
R
.RR.RR.RR.RR.RR.RRR.RR./t^ ^^ ]]3R ltR tR t	]
P                  ! R4      tR tR tR tR tR tR tR tR tR tR  tR!tR"# )$ÚMicroDOMParseri`  z#area link br img hr input base metar  Údtr­  ÚliÚtbodyÚtheadÚtfootÚcolgrouprq  r‹  ÚtdÚthrv  rw  ÚtitleÚoptionc                	óÄ   € . V n         R R RR/p\        V4      pVRV3.V n        . V n        RV n        Wn        W n        T;'       g    V'       * V n        W@n        WPn	        R# )rf  rh   N)
Úelementstackr°  ÚnsstackÚ	documentsÚ
_mddoctypeÚbeExtremelyLenientrÕ   r&  ÚsoonClosersÚlaterClosers)rH   rÂ  rÕ   r&  rÃ  rÄ  rµ   Údrs   &&&&&&  r   rI   ÚMicroDOMParser.__init__x  sk   € ð ˆÔØ�g˜r 4Ð(ˆÜ˜!‹_ˆØ˜D "˜�ˆŒØˆŒØˆŒØ"4ÔØ.ÔØ(×?Ð?°Ô,?ˆÔØ&ÔØ(Ör   c                	óÎ   € \        \        V P                  4      4       FB  pV P                  V) ,          pVP                  R 8X  g   VP	                  RR4      R8X  g   KA   ^# 	  ^ # )r…  z	xml:spacerh   r%  )Úranger   r¾  r*  rÙ   )rH   ÚedxÚels   &  r   ÚshouldPreserveSpaceÚ"MicroDOMParser.shouldPreserveSpace�  sT   € Üœ˜T×.Ñ.Ó/Ö0ˆCØ×"Ñ" C 4Õ(ˆBØ�z‰z˜UÔ" b§o¡o°kÀ2Ó&FÈ*Ö&TÚñ 1ñ r   c                	óP   € V P                   '       d   V P                   R,          # R# )r‡   Nr¥   )r¾  rT   s   &r   Ú
_getparentÚMicroDOMParser._getparent”  s"   € Ø××ÐØ×$Ñ$ RÕ(Ð(ár   z\s*/[/*]\s*c                	óú  € V P                   '       d   \        VP                  4      ^8X  g   R# VP                  4       p\	        V\
        4      '       Ed   RpVP                  pV P                  P                  V4      pV'       d   VP                  4       pV\        V4      R p \        RV,          4      P                  ^ ,          p\        TP                  4      ^8w  d   R# TP                  4       p\	        T\        \        34      '       dQ   . Tn        T'       d%   TP                  P                  \        T4      4       TP                  P                  T4       R# R# R#   \        \        3 d     R# i ; i)r‡   Nrh   z	<a>%s</a>)rÂ  r   r   rª   r%   rÌ   rö   ÚCOMMENTÚmatchÚgroupÚparseStringr	   r>   r  rÑ   r   )rH   rÊ  r   rœ  ÚoldvaluerÒ  Úes   &&     r   Ú_fixScriptElementÚ MicroDOMParser._fixScriptElementœ  s$  € ð ×&×&Ð&¬c°"·-±-Ó.@ÀAÔ.EÙØ�M‰M‹OˆÜ�aœ×Óð ˆFØ—w‘wˆHØ—L‘L×&Ñ& xÓ0ˆEßØŸ™›�Ø#¤C¨£K MÐ2�ðÜ ¨hÕ 6Ó7×BÑBÀ1ÕE�ô �1—<‘<Ó  AÔ%ÙØ—‘“ˆAÜ˜!œl¬GÐ4×5Ò5Ø "�”ßØ—M‘M×(Ñ(¬¨f«Ô6Ø—‘×$Ñ$ QÖ'ñ	 6ñ+ øô  ¤Ð/ô Úðús   Â&#E% Å%E:Å9E:c                	ó   € Wn         R # r@   )rÁ  )rH   r´   s   &&r   Ú
gotDoctypeÚMicroDOMParser.gotDoctype½  s   € Ø!Žr   c                	ó¤  € V P                  4       pV P                  '       d¢   \        V\        4      '       dŒ   VP                  pTpV P
                  '       d!   VP                  4       pVP                  4       pWPP                  P                  V. 4      9   d,   V P                  VP                  4       V P                  4       p\        V4      pV P                  R,          ^ ,          p/ p. pVP                  4        Fa  w  ršV	P                  R4      '       g   K  V	P                  R^4      p\        V4      ^8X  d   W§V^,          &   MW§R&   VP!                  V	4       Kc  	  V F  p	W) K  	  V'       d"   VP#                  4       pVP%                  V4       . pVP                  4        F[  w  ršV	P                  R^4      p\        V4      ^8X  g   K)  Vw  rÞVR8w  g   K6  WÖ9   g   K>  W¢Wm,          V3&   VP!                  V	4       K]  	  V F  p	W) K  	  \        VVVV P&                  V P)                  4       V P
                  V P*                  VP                  R4      R7      p\-        V4      pVP/                  V4       V'       dW   V P                  R,          ^,          P#                  4       pVP%                  V4       V P                  P!                  WoV34       V P0                  P!                  V4       V'       d   VP3                  V4       V P                  '       d1   VP                  V P4                  9   d   V P                  V4       R# R# R# )r‡   rf  re  rh   Úxml)rÕ   r&  rq   Nr¥   )rÎ  rÂ  r%   rÇ   r*  rÕ   r    rÄ  rF  Ú	gotTagEndr®  r¿  r(  Ú
startswithr  r   r   r�  r1  rA   ÚsaveMarkr&  r°  r3  r¾  r�   rÃ  )rH   r   r'  r‚   Ú
parentNameÚmyNameÚ
namespacesÚ	newspacesÚkeysToDeleter.  r  Ú
spacenamesÚksplitÚpfxÚtvrÊ  Ú	revspacesÚrscopys   &&&               r   ÚgotTagStartÚMicroDOMParser.gotTagStartÀ  s­  € ð —‘Ó"ˆØ×"×"Ð"¤z°&¼'×'BÒ'BØŸ™ˆJØˆFØ×#×#Ð#Ø'×-Ñ-Ó/�
ØŸ™›�Ø×*Ñ*×.Ñ.¨z¸2Ó>Ô>Ø—‘˜vŸ~™~Ô.ØŸ™Ó*�Ü" :Ó.ˆ
Ø—\‘\ "Õ% aÕ(ˆ
Øˆ	ØˆØ×$Ñ$Ö&‰DˆAØ�|‰|˜G×$Ô$ØŸW™W S¨!›_�
Ü�z“? aÔ'Ø/0˜j¨�mÒ,à$%˜b‘MØ×#Ñ# AÖ&ñ 'ó ˆAØ’ñ çØ#Ÿ™Ó*ˆJØ×Ñ˜iÔ(ØˆØ×$Ñ$Ö&‰DˆAØ—W‘W˜S !“_ˆFÜ�6‹{˜aÖØ ‘�Ø˜%–< CÖ$5Ø67˜z�°Ð2Ñ3Ø ×'Ñ'¨Ö*ñ 'ó ˆAØ’ñ äØØØØ�M‰MØ�M‰M‹OØ ×0Ñ0Ø×*Ñ*Ø —n‘n RÓ(ô	
ˆô ! Ó+ˆ	Ø
�‰�yÔ!çØ—\‘\ "Õ% aÕ(×-Ñ-Ó/ˆFØ�M‰M˜)Ô$Ø�L‰L×Ñ °Ð 8Ô9Ø×Ñ× Ñ  Ô$ßØ×Ñ˜rÔ"Ø×"×"Ð" r§z¡z°T×5EÑ5EÔ'EØ�N‰N˜4Ö ñ (FÑ"r   c                	óÊ   € V P                  4       pV! W#4      pV'       d   VP                  V4       R # V P                  '       d   V P                  P	                  V4       R # R # r@   )rÎ  r�   rÂ  rÀ  r   )rH   Úfactoryré   r‚   Útes   &&&  r   Ú_gotStandaloneÚMicroDOMParser._gotStandaloneÿ  sL   € Ø—‘Ó"ˆÙ�TÓ"ˆßØ×Ñ˜rÖ"Ø×$×$Ð$Ø�N‰N×!Ñ! "Ö%ñ %r   c                	óŽ   € VP                  4       '       g   V P                  4       '       d   V P                  \        V4       R # R # r@   )ro   rË  rñ  rÌ   ©rH   ré   s   &&r   ÚgotTextÚMicroDOMParser.gotText  s0   € Ø�:‰:�<Š<˜4×3Ñ3×5Ò5Ø×Ñ¤ dÖ+ñ 6r   c                	ó2   € V P                  \        V4       R # r@   )rñ  rÑ   rô  s   &&r   Ú
gotCommentÚMicroDOMParser.gotComment  s   € Ø×ÑœG TÖ*r   c                	ó2   € V P                  \        V4       R # r@   )rñ  rã   )rH   Ú	entityRefs   &&r   ÚgotEntityReferenceÚ!MicroDOMParser.gotEntityReference  s   € Ø×ÑœO¨YÖ7r   c                	ó2   € V P                  \        V4       R # r@   )rñ  r  )rH   Úcdatas   &&r   ÚgotCDataÚMicroDOMParser.gotCData  s   € Ø×ÑœL¨%Ö0r   c                	óh  € V P                   '       gG   V P                  '       d   R # \        V P                  RV3V P	                  4       ,           R,           !  hV P                   P                  4       pV P                  R,          ^,          pV P                  R,          ^,          VJ d   V P                  P                  4       pMR pV P                  '       d,   VP                  P                  4       pVP                  4       pMVP                  pTpVP                  R^4      p\        V4      ^8X  d„   Vw  r‰VP                  VR 4      p
V
ej   VP                  V
8w  dY   V P                  '       gG   \        V P                  VP                  V3V P	                  4       ,           VP                  ,           !  hWV8X  Eg~   V P                  '       Ed%   V P                   '       Ed   V P                   ^ ,          p\        \        V P                   4      4       FY  pV P                   V^,           ) ,          P                  V8X  g   K/  V P                   V^,           ) ,          P!                  V4        M>	  V P                   P#                  V4       Ve   V P                  P#                  V4       R # V P                   V^,           ) R 1 V P                   '       g   V P$                  P#                  V4       R # MF\        V P                  VP                  V3V P	                  4       ,           VP                  ,           !  hVP!                  V4       V P                   '       g   V P$                  P#                  V4       V P                  '       d'   VP                  R8X  d   V P'                  V4       R # R # R # )NÚNOTHINGre  r�  )r   r   r¥   )r¾  rÂ  r>   rA   rà  r   r¿  rÕ   r*  r    r  r   rF  rq   r,  rÈ  r6  r   rÀ  r×  )rH   r   rÊ  ÚpfxdixÚnstupleÚtnÚcnameÚnsplitrè  ÚnewnamerJ  ÚlastElÚidxs   &&           r   rÞ  ÚMicroDOMParser.gotTagEnd  sÞ  € ð × × Ð Ø×&×&Ð&ÙÜ Ø—=‘= )¨TÐ2°T·]±]³_ÕDÀvÕMñð ð ×Ñ×"Ñ"Ó$ˆØ—‘˜bÕ! !Õ$ˆØ�<‰<˜Õ˜AÕ "Ó$Ø—l‘l×&Ñ&Ó(‰GàˆGØ××ÐØ—‘×!Ñ!Ó#ˆBØ—J‘J“L‰Eà—‘ˆBØˆEà—‘˜C Ó#ˆÜˆv‹;˜!ÔØ!‰LˆCØ—‘˜C Ó&ˆBØŠ~Ø—<‘< 2Ô%Ø×2×2Ð2Ü,à!%§¡°·
±
¸DÐ AØ"&§-¡-£/õ!2à"$§+¡+õ!.ñð ð •Ø×&×&Ñ&Ø×$×$Ñ$Ø!×.Ñ.¨qÕ1�FÜ$¤S¨×):Ñ):Ó%;Ö<˜Ø×,Ñ,¨s°Q­w¨ZÕ8×@Ñ@ÀEÖIØ ×-Ñ-°°aµ¨jÕ9×@Ñ@ÀÔFÙ!ñ  =ð ×)Ñ)×0Ñ0°Ô4Ø"Ò.Ø ŸL™L×/Ñ/°Ô8ÙØ×)Ñ)¨C°!­G¨*©,Ð7Ø×,×,Ð,ØŸ™×-Ñ-¨fÔ5Ùøä$Ø—}‘} b§j¡j°$Ð7¸$¿-¹-»/ÕIÈBÏKÉKÕWñð ð 	�	‰	�$ŒØ× × Ð Ø�N‰N×!Ñ! "Ô%Ø×"×"Ð" r§z¡z°XÔ'=Ø×"Ñ" 2Ö&ñ (>Ñ"r   c                	ó’  € \         P                  ! W4       V P                  '       dŸ   V P                  '       d/   V P                  P                  V P                  ^ ,          4       R# \        V P                  V P                  R,          R3V P                  4       ,           V P                  R,          P                  ,           !  hR# )r   ÚEND_OF_FILENr¥   )
r
   ÚconnectionLostr¾  rÂ  rÀ  r   r>   rA   rà  r,  )rH   Úreasons   &&r   r  ÚMicroDOMParser.connectionLostT  s—   € Ü× Ò  Ô.Ø××ÐØ×&×&Ð&Ø—‘×%Ñ% d×&7Ñ&7¸Õ&:Ö;ä$àŸ™¨×(9Ñ(9¸"Õ(=¸}ÐMØŸ-™-›/õ*à×+Ñ+¨BÕ/×8Ñ8õ9ñð ñ	 r   )	rÁ  rÂ  rÕ   rÀ  r¾  rÄ  r¿  r&  rÃ  N)r¶  r·  rµ  )rW   rX   rY   rZ   r  rÃ  rÄ  rI   rË  rÎ  ÚreÚcompilerÑ  r×  rÚ  rì  rñ  rõ  rø  rü  r   rÞ  r  r[   rO   r   r   r²  r²  `  sí   † ð
 8×=Ñ=Ó?€Kàˆc�4ˆ[Øˆt�TˆlØˆt�TˆlØˆtˆfØÒ,ØÒ,ØÒ,Ø�Z�LØ�ˆwØˆtˆfØˆtˆfØˆtˆfØ��Ø�&˜&Ð!Ø�8�*ð€Lð( ØØØØ!ô)ò*òð �jŠj˜Ó(€Gò(òB"ò=!ò~&ò,ò+ò8ò1ò>'ö@r   r²  c                ó˜  € \        V R4      '       g   \        V R4      p \        V/ VB p\        V RR4      Vn        VP                  R4       \        V R4      '       d!   VP                  V P                  4       4       M=V P                  R4      pV'       d%   VP                  V4       V P                  R4      pK,  VP                  R4       VP                  '       g   \        VP                  ^ ^ R4      hVP                  '       d“   \        VP                  4      ^8X  dI   VP                  ^ ,          p\        V\        4      '       g   \        R	4      pVP!                  V4       TpMC\        R	4      pVP                   F  pVP!                  V4       K  	  MVP                  ^ ,          p\#        V4      pVP$                  Vn        V# )
z
Parse HTML or XML readable.
ÚreadÚrbr   z<xmlfile />Nru   i   zNo top-level Nodes in documentru  )rÜ   Úopenr²  ÚgetattrrA   ÚmakeConnectionÚdataReceivedru   r  r  rÀ  r	   rÂ  r   r%   rÇ   r�   r¯   rÁ  r´   )	ÚreadableÚargsÚkwargsÚmdpÚrrµ   rÊ  r�   Údocs	   &*,      r   Úparser!  c  sg  € ô �8˜V×$Ò$Ü˜ $Ó'ˆÜ
˜$Ð
) &Ñ
)€CÜ˜8 V¨]Ó;€C„LØ×Ñ�tÔÜˆx˜×$Ò$Ø×Ñ˜×*Ñ*Ó,Õ-à�M‰M˜$ÓˆßØ×Ñ˜QÔØ—‘˜dÓ#ŠAØ×Ñ�tÔà�=�=ˆ=Ü˜Ÿ™ q¨!Ð-MÓNÐNà
××ÐÜˆs�}‰}Ó Ô"Ø—‘˜aÕ ˆAÜ˜a¤×)Ò)Ü˜V“_�Ø—‘˜qÔ!Ø�øä˜“ˆAØŸœ�Ø—‘˜eÖ$ò 'ð �M‰M˜!ÕˆÜ
�1‹+€CØ—.‘.€C„KØ€Jr   c                ó¬   € \        V \        4      '       d(   \        \        V P	                  R 4      4      .VO5/ VB # \        \        V 4      .VO5/ VB # )zUTF-16)r%   r&   r!  r   r'   )Ústr  rÈ   s   &*,r   rÔ  rÔ  Š  sK   € Ü�"”c×Òä”W˜RŸY™Y xÓ0Ó1Ð?°DÒ?¸BÑ?Ð?Ü”˜“Ð*˜tÒ* rÑ*Ð*r   c                ó   € \        V ^ ^R7      # ©z
Parse an XML readable object.
©rÕ   r&  )r!  )r  s   &r   ÚparseXMLr'  ‘  s   € ô �¨1¸1Ô=Ð=r   c                ó   € \        V ^ ^R7      # r%  )rÔ  )r#  s   &r   ÚparseXMLStringr)  ˜  s   € ô �r¨1¸1Ô=Ð=r   c                  óF   € ] tR tRtRtRR ltR tR tR tRR lt	R t
R	tR
# )ÚlmxiŸ  z
Easy creation of XML.
c                	óT   € \        V\        4      '       d   \        V4      pWn        R # r@   )r%   r&   rÇ   rÝ   )rH   rÝ   s   &&r   rI   Úlmx.__init__¤  s   € Ü�dœC× Ò Ü˜4“=ˆDØŽ	r   c                	óF   a a€ S^ ,          R8X  d   \        R4      hVV 3R l# )r   Ú_zno private attrsc                 ó*   <€ SP                   ! S3/ V B # r@   )Úadd)rÈ   r   rH   s   ,€€r   rc  Ú!lmx.__getattr__.<locals>.<lambda>¬  s   ø€ ˜DŸHšH TÑ0¨RÒ0r   )ÚAttributeErrorrÖ   s   ffr   Ú__getattr__Úlmx.__getattr__©  s    ù€ Ø��7�cŒ>Ü Ð!3Ó4Ð4Ý0Ð0r   c                	ó<   € V P                   P                  W4       R # r@   )rÝ   rT  )rH   rž  rý   s   &&&r   Ú__setitem__Úlmx.__setitem__®  s   € Ø�	‰	×Ñ˜sÖ(r   c                	ó8   € V P                   P                  V4      # r@   )rÝ   rÙ   )rH   rž  s   &&r   Ú__getitem__Úlmx.__getitem__±  s   € Ø�y‰y×%Ñ% cÓ*Ð*r   c                	óT   € \        WR 7      pV P                  P                  V4       V # )r  )rÌ   rÝ   r�   )rH   Útxtr  Únns   &&& r   r6   Úlmx.text´  s#   € Ü�#ÔˆØ�	‰	×Ñ˜bÔ!Øˆr   c                	óÖ   € \        V^ ^ R7      pV P                  P                  V4       \        V4      pVP	                  4        F   w  rVV^ ,          R8X  d
   VR,          pWdV&   K"  	  V# )r   r&  r/  :r‡   NN)rÇ   rÝ   r�   r+  r(  )rH   r*  rÈ   ÚnewNodeÚxfr.  r  s   &&,    r   r1  Úlmx.add¹  s_   € Ü˜'°1À1ÔEˆØ�	‰	×Ñ˜gÔ&Ü�‹\ˆØ—H‘H–J‰DˆAØ��t�sŒ{Ø�b•E�Øˆq‹Eñ ð ˆ	r   )rÝ   N)rˆ  r¾   )rW   rX   rY   rZ   r  rI   r4  r7  r:  r6   r1  r[   rO   r   r   r+  r+  Ÿ  s%   † ñôò
1ò
)ò+ôö
r   r+  ))rå   z&amp;)r]  z&lt;)rÃ   z&gt;)r_  z&quot;))Ú'z&apos;)6r  Ú
__future__r   r  ÚwarningsÚior   r   Úincrementalr   r   Útwisted.python.compatr   Útwisted.python.utilr   Útwisted.web.suxr	   r
   rP   ÚwarningStringÚwarnÚDeprecationWarningr   r!   r1   ÚHTML_ESCAPE_CHARSÚlistÚREV_HTML_ESCAPE_CHARSÚreverseÚXML_ESCAPE_CHARSÚREV_XML_ESCAPE_CHARSr9   r<   Ú	Exceptionr>   r]   r¯   rã   rô   rÑ   rÌ   r  r   r•  r"  rÇ   r®  r°  r²  r!  rÔ  r'  r)  r+  rO   r   r   Ú<module>rV     s�  ðñõ" #ó 
Û ß  ç 1õ )Ý /ß 1à;×BÑBÙ‘W˜Y¨¨B°Ó2Ó3ó€ð 	‡‚ˆmÐ/¸AÕ >òò6
òð&Ð ñ Ð.Ó/Ð Ø × Ñ Ô à$Ð'9Õ9Ð ÙÐ,Ó-Ð Ø × Ñ Ô ð /ô ð )ô ô
�Yô 
÷6Kñ KôtQˆtô Qôh2�dô 2ô<+�Dô +ô/ˆmô /ô.(6ˆ=ô (6ôV�=ô ò(ñ ‹L€	ô*ˆMô *ôuˆdô uòp	òô@�Yô @òF$òN+ò>ò>÷"ó "r   