Ë
    òT•ju-  ã                   óÄ   — d dl Zd dlZdZdZdZdZdZdZdZ	d	Z
 G d
„ dej                  j                  «      Z G d„ d«      Z G d„ d«      Z G d„ de«      ZdZdd„Zdd„Zy)é    NÚSTART_ELEMENTÚEND_ELEMENTÚCOMMENTÚSTART_DOCUMENTÚEND_DOCUMENTÚPROCESSING_INSTRUCTIONÚIGNORABLE_WHITESPACEÚ
CHARACTERSc                   ó|   — e Zd ZdZdZdd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚPullDOMNc                 ó6  — ddl m} || _        d d g| _        | j                  | _        g | _        | j
                  j                  | _        	 | j
                  j                  | _        |dig| _
        | j                  d   | _        g | _        y # t        $ r Y Œ1w xY w)Nr   )ÚXML_NAMESPACEÚxmléÿÿÿÿ)Úxml.domr   ÚdocumentFactoryÚ
firstEventÚ	lastEventÚelementStackÚappendÚpushÚpopÚAttributeErrorÚ_ns_contextsÚ_current_contextÚpending_events)Úselfr   r   s      ú&/usr/lib/python3.12/xml/dom/pulldom.pyÚ__init__zPullDOM.__init__   s—   € Ý)Ø.ˆÔØ ˜,ˆŒØŸ™ˆŒØˆÔØ×%Ñ%×,Ñ,ˆŒ	ð	Ø×(Ñ(×,Ñ,ˆDŒHð ,¨EÐ2Ð3ˆÔØ $× 1Ñ 1°"Ñ 5ˆÔØ ˆÕøô ò 	áð	ús   ÁB Â	BÂBc                 ó>   — | j                   d   }| j                   d= |S ©Nr   )r   )r   Úresults     r   r   zPullDOM.pop!   s%   € Ø×"Ñ" 2Ñ&ˆØ×Ñ˜bÐ!Øˆó    c                 ó   — || _         y ©N)Ú_locator)r   Úlocators     r   ÚsetDocumentLocatorzPullDOM.setDocumentLocator&   s	   € Øˆ�r#   c                 óø   — t        | d«      sg | _        | j                  j                  |xs d|f«       | j                  j                  | j                  j                  «       «       |xs d | j                  |<   y )NÚ_xmlns_attrsÚxmlns)Úhasattrr*   r   r   r   Úcopy)r   ÚprefixÚuris      r   ÚstartPrefixMappingzPullDOM.startPrefixMapping)   si   € Ü�t˜^Ô,Ø "ˆDÔØ×Ñ× Ñ  &Ò"3¨G°SÐ!9Ô:Ø×Ñ× Ñ  ×!6Ñ!6×!;Ñ!;Ó!=Ô>Ø%+¢^¨tˆ×Ñ˜cÒ"r#   c                 óB   — | j                   j                  «       | _        y r%   )r   r   r   )r   r.   s     r   ÚendPrefixMappingzPullDOM.endPrefixMapping0   s   € Ø $× 1Ñ 1× 5Ñ 5Ó 7ˆÕr#   c                 óÐ  — d}t        | dd «      }|�"|D ]  \  }}||j                  ||f<   Œ g | _        |\  }}	|rZ|€| j                  |   }
|
r	|
dz   |	z   }n|	}| j                  r| j                  j                  ||«      }nM| j                  ||«      }n:| j                  r| j                  j                  |	«      }n| j                  d |	«      }|j                  «       D ]É  \  }}|\  }}||k(  r;|dk(  r|}nd|z   }| j                  j                  ||«      }|j                  |«       nx|rJ| j                  |   }
|
r	|
dz   |z   }n|}| j                  j                  ||«      }|j                  |«       n,| j                  j                  |«      }|j                  |«       ||_        ŒË t        |fd g| j                  d<   | j                  d   | _        | j!                  |«       y )Nzhttp://www.w3.org/2000/xmlns/r*   ú:r+   zxmlns:é   )ÚgetattrÚ_attrsr*   r   ÚdocumentÚcreateElementNSÚbuildDocumentÚcreateElementÚitemsÚcreateAttributeNSÚsetAttributeNodeNSÚcreateAttributeÚsetAttributeNodeÚvaluer   r   r   )r   ÚnameÚtagNameÚattrsÚ	xmlns_uriÚxmlns_attrsÚanamerA   r/   Ú	localnamer.   ÚnodeÚa_uriÚa_localnameÚqnameÚattrs                   r   ÚstartElementNSzPullDOM.startElementNS3   sñ  € à3ˆ	Ü˜d N°DÓ9ˆØÐ"Ø +ò 9‘��uØ38�—‘˜i¨Ð/Ò0ð9à "ˆDÔØ‰ˆˆYÙð ˆØ×.Ñ.¨sÑ3�ÙØ$ s™l¨YÑ6‘Gà'�GØ�}Š}Ø—}‘}×4Ñ4°S¸'ÓB‘à×)Ñ)¨#¨wÓ7‘ð �}Š}Ø—}‘}×2Ñ2°9Ó=‘à×)Ñ)¨$°	Ó:�à Ÿ;™;›=ò 	‰KˆE�%Ø!&ÑˆE�;Ø˜	Ò!Ø 'Ò)Ø'‘Eà$ {Ñ2�EØ—}‘}×6Ñ6°u¸eÓD�Ø×'Ñ'¨Õ-ÙØ×.Ñ.¨uÑ5�ÙØ" S™L¨;Ñ6‘Eà'�EØ—}‘}×6Ñ6°u¸eÓD�Ø×'Ñ'¨Õ-à—}‘}×4Ñ4°[ÓA�Ø×%Ñ% dÔ+ØˆD�Jð)	ô, ,¨TÐ2°DÐ9ˆ�‰�qÑØŸ™¨Ñ*ˆŒØ�	‰	�$�r#   c                 óv   — t         | j                  «       fd g| j                  d<   | j                  d   | _        y ©Nr5   ©r   r   r   )r   rB   rC   s      r   ÚendElementNSzPullDOM.endElementNSl   ó0   € Ü)¨4¯8©8«:Ð6¸Ð=ˆ�‰�qÑØŸ™¨Ñ*ˆ�r#   c                 ó†  — | j                   r| j                   j                  |«      }n| j                  d |«      }|j                  «       D ]8  \  }}| j                   j	                  |«      }||_        |j                  |«       Œ: t        |fd g| j                  d<   | j                  d   | _        | j                  |«       y rP   )
r8   r;   r:   r<   r?   rA   r@   r   r   r   )r   rB   rD   rI   rG   rA   rM   s          r   ÚstartElementzPullDOM.startElementp   s¦   € Ø�=Š=Ø—=‘=×.Ñ.¨tÓ4‰Dà×%Ñ% d¨DÓ1ˆDà Ÿ;™;›=ò 	(‰KˆE�%Ø—=‘=×0Ñ0°Ó7ˆDØˆDŒJØ×!Ñ! $Õ'ð	(ô
 ,¨TÐ2°DÐ9ˆ�‰�qÑØŸ™¨Ñ*ˆŒØ�	‰	�$�r#   c                 óv   — t         | j                  «       fd g| j                  d<   | j                  d   | _        y rP   rQ   )r   rB   s     r   Ú
endElementzPullDOM.endElement   rS   r#   c                 óô   — | j                   rG| j                   j                  |«      }t        |fd g| j                  d<   | j                  d   | _        y t        |fd g}| j                  j                  |«       y rP   )r8   ÚcreateCommentr   r   r   r   )r   ÚsrI   Úevents       r   ÚcommentzPullDOM.commentƒ   sf   € Ø�=Š=Ø—=‘=×.Ñ.¨qÓ1ˆDÜ")¨4 °$Ð 7ˆD�N‰N˜1ÑØ!Ÿ^™^¨AÑ.ˆD�Nä˜q�\ 4Ð(ˆEØ×Ñ×&Ñ& uÕ-r#   c                 óø   — | j                   rH| j                   j                  ||«      }t        |fd g| j                  d<   | j                  d   | _        y t        ||fd g}| j                  j                  |«       y rP   )r8   ÚcreateProcessingInstructionr   r   r   r   )r   ÚtargetÚdatarI   r[   s        r   ÚprocessingInstructionzPullDOM.processingInstructionŒ   sl   € Ø�=Š=Ø—=‘=×<Ñ<¸VÀTÓJˆDÜ"8¸$Ð!?ÀÐ FˆD�N‰N˜1ÑØ!Ÿ^™^¨AÑ.ˆD�Nä,¨f°dÐ;¸TÐBˆEØ×Ñ×&Ñ& uÕ-r#   c                 ó�   — | j                   j                  |«      }t        |fd g| j                  d<   | j                  d   | _        y rP   )r8   ÚcreateTextNoder	   r   ©r   ÚcharsrI   s      r   ÚignorableWhitespacezPullDOM.ignorableWhitespace•   s>   € Ø�}‰}×+Ñ+¨EÓ2ˆÜ2°DÐ9¸4Ð@ˆ�‰�qÑØŸ™¨Ñ*ˆ�r#   c                 ó�   — | j                   j                  |«      }t        |fd g| j                  d<   | j                  d   | _        y rP   )r8   rc   r
   r   rd   s      r   Ú
characterszPullDOM.charactersš   s>   € Ø�}‰}×+Ñ+¨EÓ2ˆÜ(¨$Ð/°Ð6ˆ�‰�qÑØŸ™¨Ñ*ˆ�r#   c                 ó„   — | j                   €4dd l}|j                  j                  j                  j
                  | _         y y )Nr   )r   Úxml.dom.minidomÚdomÚminidomÚDocumentÚimplementation)r   r   s     r   ÚstartDocumentzPullDOM.startDocumentŸ   s2   € Ø×ÑÐ'Û"Ø#&§7¡7§?¡?×#;Ñ#;×#JÑ#JˆDÕ ð (r#   c                 óR  — | j                   j                  ||d «      }|| _        t        |fd g| j                  d<   | j                  d   | _        | j                  |«       | j                  D ]¦  }|d   d   t        k(  r1|d   \  }}}| j                  j                  ||«      }t        |f|d<   nN|d   d   t        k(  r-| j                  j                  |d   d   «      }t        |f|d<   nt        d|d   d   «      ‚|| j                  d<   || _        Œ¨ d | _        |j                  S )Nr5   r   zUnknown pending event )r   ÚcreateDocumentr8   r   r   r   r   r   r^   r   rY   ÚAssertionErrorÚ
firstChild)	r   r/   ÚtagnamerI   ÚeÚ_r_   r`   Úns	            r   r:   zPullDOM.buildDocument¤   s)  € ð ×#Ñ#×2Ñ2°3¸ÀÓFˆØˆŒÜ,¨dÐ3°TÐ:ˆ�‰�qÑØŸ™¨Ñ*ˆŒØ�	‰	�$Œà×$Ñ$ò 	ˆAØ�‰t�A‰wÔ0Ò0Ø ! !¡‘��&˜Ø—M‘M×=Ñ=¸fÀdÓK�Ü.°Ð2��!’Ø�1‘�a‘œGÒ#Ø—M‘M×/Ñ/°°!±°Q±Ó8�Ü �|��!’ä$Ð%=¸aÀ¹dÀ1¹gÓFÐFØ !ˆD�N‰N˜1ÑØˆD�Nð	ð #ˆÔØ�‰Ðr#   c                 óf   — t         | j                  fd g| j                  d<   | j                  «        y rP   )r   r8   r   r   ©r   s    r   ÚendDocumentzPullDOM.endDocument¼   s'   € Ü*¨D¯M©MÐ:¸DÐAˆ�‰�qÑØ�‰�
r#   c                 ó   — d| _         y)z.clear(): Explicitly release parsing structuresN)r8   ry   s    r   ÚclearzPullDOM.clearÀ   s	   € àˆ�r#   r%   )Ú__name__Ú
__module__Ú__qualname__r&   r8   r   r   r(   r0   r2   rN   rR   rU   rW   r\   ra   rf   rh   ro   r:   rz   r|   © r#   r   r   r      sc   „ Ø€HØ€Hó!ò ò
 ò4ò8ò7òr+òò+ò.ò.ò+ò
+ò
Kò
ò0ór#   r   c                   ó   — e Zd Zd„ Zd„ Zd„ Zy)ÚErrorHandlerc                 ó   — t        |«       y r%   )Úprint©r   Ú	exceptions     r   ÚwarningzErrorHandler.warningÅ   s
   € ÜˆiÕr#   c                 ó   — |‚r%   r€   r…   s     r   ÚerrorzErrorHandler.errorÇ   ó   € Øˆr#   c                 ó   — |‚r%   r€   r…   s     r   Ú
fatalErrorzErrorHandler.fatalErrorÉ   rŠ   r#   N)r}   r~   r   r‡   r‰   rŒ   r€   r#   r   r‚   r‚   Ä   s   „ òòór#   r‚   c                   óB   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚDOMEventStreamc                 óœ   — || _         || _        || _        t        | j                  d«      s| j                  | _        | j                  «        y )NÚfeed)ÚstreamÚparserÚbufsizer,   Ú_slurpÚgetEventÚreset)r   r‘   r’   r“   s       r   r   zDOMEventStream.__init__Í   s9   € ØˆŒØˆŒØˆŒÜ�t—{‘{ FÔ+Ø ŸK™KˆDŒMØ�
‰
�r#   c                 óè   — t        «       | _        | j                  j                  t        j
                  j                  j                  d«       | j                  j                  | j                  «       y rP   )	r   Úpulldomr’   Ú
setFeaturer   ÚsaxÚhandlerÚfeature_namespacesÚsetContentHandlerry   s    r   r–   zDOMEventStream.resetÕ   sC   € Ü“yˆŒà�‰×ÑœsŸw™wŸ™×AÑAÀ1ÔEØ�‰×%Ñ% d§l¡lÕ3r#   c                 ó6   — | j                  «       }|r|S t        ‚r%   )r•   ÚStopIteration©r   Úrcs     r   Ú__next__zDOMEventStream.__next__Û   s   € Ø�]‰]‹_ˆÙØˆIÜÐr#   c                 ó   — | S r%   r€   ry   s    r   Ú__iter__zDOMEventStream.__iter__á   s   € Øˆr#   c                 óò   — | j                  «       }|g}|rb|\  }}||u ry |t        k7  r|d   j                  |«       |t        k(  r|j	                  |«       n|t        k(  r|d= | j                  «       }|rŒay y r!   )r•   r   ÚappendChildr   r   )r   rI   r[   ÚparentsÚtokenÚcur_nodes         r   Ú
expandNodezDOMEventStream.expandNodeä   sx   € Ø—‘“ˆØ�&ˆÙØ#‰OˆE�8Ø˜4ÑØØœÒ#Ø˜‘×'Ñ'¨Ô1ØœÒ%Ø—‘˜xÕ(Øœ+Ò%Ø˜B�KØ—M‘M“OˆEô r#   c                 ó@  — | j                   j                  d   s%| j                   j                  | j                   _        | j                   j                  d   sw| j                  j	                  | j
                  «      }|s| j                  j                  «        y | j                  j                  |«       | j                   j                  d   sŒw| j                   j                  d   d   }| j                   j                  d   d   | j                   j                  d<   |S )Nr5   r   )	r˜   r   r   r‘   Úreadr“   r’   Úcloser�   )r   Úbufr¡   s      r   r•   zDOMEventStream.getEventó   sÚ   € ð �|‰|×&Ñ& qÒ)Ø%)§\¡\×%<Ñ%<ˆD�L‰LÔ"Ø—,‘,×)Ñ)¨!Ò,Ø—+‘+×"Ñ" 4§<¡<Ó0ˆCÙØ—‘×!Ñ!Ô#ØØ�K‰K×Ñ˜SÔ!ð —,‘,×)Ñ)¨!Ó,ð �\‰\×$Ñ$ QÑ'¨Ñ*ˆØ%)§\¡\×%<Ñ%<¸QÑ%?ÀÑ%Bˆ�‰×Ñ Ñ"Øˆ	r#   c                 óŽ   — | j                   j                  | j                  «       | j                  | _        | j                  «       S )zå Fallback replacement for getEvent() using the
            standard SAX2 interface, which means we slurp the
            SAX events into memory (no performance gain, but
            we are compatible to all SAX parsers).
        )r’   Úparser‘   Ú_emitr•   ry   s    r   r”   zDOMEventStream._slurp  s1   € ð 	�‰×Ñ˜$Ÿ+™+Ô&ØŸ
™
ˆŒØ�z‰z‹|Ðr#   c                 ó¤   — | j                   j                  d   d   }| j                   j                  d   d   | j                   j                  d<   |S )zn Fallback replacement for getEvent() that emits
            the events that _slurp() read previously.
        r5   r   )r˜   r   r    s     r   r±   zDOMEventStream._emit  sJ   € ð �\‰\×$Ñ$ QÑ'¨Ñ*ˆØ%)§\¡\×%<Ñ%<¸QÑ%?ÀÑ%Bˆ�‰×Ñ Ñ"Øˆ	r#   c                 óX   — | j                   j                  «        | ` d| _        d| _        y)z+clear(): Explicitly release parsing objectsN)r˜   r|   r’   r‘   ry   s    r   r|   zDOMEventStream.clear  s%   € à�‰×ÑÔØˆLØˆŒØˆ�r#   N)r}   r~   r   r   r–   r¢   r¤   rª   r•   r”   r±   r|   r€   r#   r   rŽ   rŽ   Ì   s/   „ òò4òòò$òòòór#   rŽ   c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚSAX2DOMc                 ó’   — t         j                  | |||«       | j                  d   }| j                  d   }|j                  |«       y ©Nr   éþÿÿÿ)r   rN   r   r¦   )r   rB   rC   rD   ÚcurNodeÚ
parentNodes         r   rN   zSAX2DOM.startElementNS  sD   € Ü×Ñ˜t T¨7°EÔ:Ø×#Ñ# BÑ'ˆØ×&Ñ& rÑ*ˆ
Ø×Ñ˜wÕ'r#   c                 ó�   — t         j                  | ||«       | j                  d   }| j                  d   }|j                  |«       y r·   )r   rU   r   r¦   )r   rB   rD   r¹   rº   s        r   rU   zSAX2DOM.startElement#  sB   € Ü×Ñ˜T 4¨Ô/Ø×#Ñ# BÑ'ˆØ×&Ñ& rÑ*ˆ
Ø×Ñ˜wÕ'r#   c                 ó–   — t         j                  | ||«       | j                  d   d   }| j                  d   }|j	                  |«       y ©Nr   r5   r   )r   ra   r   r   r¦   )r   r_   r`   rI   rº   s        r   ra   zSAX2DOM.processingInstruction)  sE   € Ü×%Ñ% d¨F°DÔ9Ø�~‰~˜aÑ  Ñ#ˆØ×&Ñ& rÑ*ˆ
Ø×Ñ˜tÕ$r#   c                 ó”   — t         j                  | |«       | j                  d   d   }| j                  d   }|j	                  |«       y r½   )r   rf   r   r   r¦   ©r   re   rI   rº   s       r   rf   zSAX2DOM.ignorableWhitespace/  sC   € Ü×#Ñ# D¨%Ô0Ø�~‰~˜aÑ  Ñ#ˆØ×&Ñ& rÑ*ˆ
Ø×Ñ˜tÕ$r#   c                 ó”   — t         j                  | |«       | j                  d   d   }| j                  d   }|j	                  |«       y r½   )r   rh   r   r   r¦   r¿   s       r   rh   zSAX2DOM.characters5  sC   € Ü×Ñ˜4 Ô'Ø�~‰~˜aÑ  Ñ#ˆØ×&Ñ& rÑ*ˆ
Ø×Ñ˜tÕ$r#   N)r}   r~   r   rN   rU   ra   rf   rh   r€   r#   r   rµ   rµ     s   „ ò(ò(ò%ò%ó%r#   rµ   iì?  c                 óª   — |€t         }t        | t        «      rt        | d«      }n| }|st        j
                  j                  «       }t        |||«      S )NÚrb)Údefault_bufsizeÚ
isinstanceÚstrÚopenr   rš   Úmake_parserrŽ   )Ústream_or_stringr’   r“   r‘   s       r   r°   r°   >  sM   € Ø€Ü!ˆÜÐ"¤CÔ(ÜÐ&¨Ó-‰à!ˆÙÜ—‘×$Ñ$Ó&ˆÜ˜& &¨'Ó2Ð2r#   c                 óŽ   — ddl m} t        | «      } || «      }|st        j                  j                  «       }t        |||«      S )Nr   )ÚStringIO)ÚiorÊ   Úlenr   rš   rÇ   rŽ   )Ústringr’   rÊ   r“   r®   s        r   ÚparseStringrÎ   I  s<   € Ýä�&‹k€GÙ
�6Ó
€CÙÜ—‘×$Ñ$Ó&ˆÜ˜#˜v wÓ/Ð/r#   )NNr%   )Úxml.saxr   Úxml.sax.handlerr   r   r   r   r   r   r	   r
   rš   ÚContentHandlerr   r‚   rŽ   rµ   rÃ   r°   rÎ   r€   r#   r   ú<module>rÒ      sƒ   ðÛ Û à€Ø€Ø
€Ø!€Ø€Ø1Ð Ø-Ð Ø€
ôuˆc�g‰g×$Ñ$ô u÷nñ ÷Mñ Mô^%ˆgô %ðB !€ó	3ô0r#   