python (3.12.0)

(root)/
lib/
python3.12/
xml/
dom/
__pycache__/
expatbuilder.cpython-312.opt-1.pyc

̑emdZddlmZmZmZddlmZmZmZddlm	Z	ddl
mZmZddl
mZejZej Zej"Zej$j&Zej$j(Zej$j*Zej$j,Zej.Zej2ddej2dd	ej2dd
ej2ddej2ddej2dd
ej2ddej2ddej2ddd	ZGddeZdZdZGddZeeefZ GddeZ!GddeZ"Gdde"Z#Gdde"Z$d Z%d!e%zZ&Gd"d#eZ'Gd$d%Z(Gd&d'e(eZ)Gd(d)e(e'Z*Gd*d+e+Z,Gd,d-eZ-d3d.Z.d3d/Z/d3d0Z0d3d1Z1d2Z2y)4zFacility to use the Expat parser to load a minidom instance
from a string or file.

This avoids all the overhead of SAX and pulldom to gain performance.
)
xmlbuilderminidomNode)EMPTY_NAMESPACEEMPTY_PREFIXXMLNS_NAMESPACE)expat)
_append_child_set_attribute_node)
NodeFilterNcdataenumerationentityentitiesididrefidrefsnmtokennmtokens)	CDATAENUMENTITYENTITIESIDIDREFIDREFSNMTOKENNMTOKENScHeZdZdZddZdZdZdZdZdZ	d	Z
d
ZdZy)
ElementInfo
_attr_info_modeltagNameNc.||_g|_||_yN)r$r"r#)selfr$models   H/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/xml/dom/expatbuilder.py__init__zElementInfo.__init__?scH|j|j|jfSr&r!r's r)__getstate__zElementInfo.__getstate__DsT\\99r+c.|\|_|_|_yr&r!)r'states  r)__setstate__zElementInfo.__setstate__Gs5:2dlr+c|jD]0}|d|k(s|d}|ddk(rtdcSt|dcStjS)Nr(r)r"
_typeinfo_mapr_no_type)r'anameinfots    r)getAttributeTypezElementInfo.getAttributeTypeJs]OO	3DAw%HQ43;(00(b22
	3r+c"tjSr&)rr7)r'namespaceURI	localNames   r)getAttributeTypeNSzElementInfo.getAttributeTypeNSTsr+c|jrE|jd}|tjjtjjfvSyNrF)r#r	r(
XML_CTYPE_ANYXML_CTYPE_MIXED)r'types  r)isElementContentzElementInfo.isElementContentWsF;;;;q>D 9 9 % ; ; ==
=r+cp|jr*|jdtjjk(SyrA)r#r	r(XML_CTYPE_EMPTYr-s r)isEmptyzElementInfo.isEmpty_s);;;;q>U[[%@%@@@r+cJ|jD]}|d|k(s|ddk(cSy)Nr3r4rF)r")r'r8r9s   r)isIdzElementInfo.isIdes5OO	(DAw%Bx4''	(r+c(|j||fSr&)rJ)r'eurienameaurir8s     r)isIdNSzElementInfo.isIdNSksyy$''r+r&)
__name__
__module____qualname__	__slots__r*r.r1r;r?rErHrJrOr+r)r r <s41I
:;  (r+r c&|j||Sr&)_intern_setdefault)builderss  r)_internrYos%%a++r+c*|jd}|j}t|dk(r)|\}}}|||}|d|}|||}|||}n3t|dk(r|\}}t}|||x}}nt	d|z||||||fS)N :z4Unsupported syntax: spaces in URIs not supported: %r)splitrVlenr
ValueError)rWnamepartsinternuri	localnameprefixqnames        r)_parse_ns_namerirsJJsOE

'
'F
5zQ!&Y'!9-ue$9i0		UqY"9i88	ORVVWW#sY55r+ceZdZdZddZdZdZdZdZdZ	d	Z
d
ZdZdZ
d
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZy) ExpatBuilderzPDocument builder that uses Expat to build a ParsedXML.DOM document
    instance.Nc|tj}||_|jj%t	|jj|_nd|_t|_d|_|jyr&)
rOptions_optionsfilterFilterVisibilityController_filterr_finish_start_element_parserreset)r'optionss  r)r*zExpatBuilder.__init__sc? ((*G
==+5dmm6J6JKDLDL*,D&

r+c*tjS)zCreate a new parser object.)r	ParserCreater-s r)createParserzExpatBuilder.createParsers!!##r+cB|js|j|_|jjj|_d|j_d|j_d|j_|j|j|jS)z7Return the parser object, creating a new one if needed.T)	rsrxrd
setdefaultrVbuffer_textordered_attributesspecified_attributesinstallr-s r)	getParserzExpatBuilder.getParserso||,,.DL&*ll&9&9&D&DD#'+DLL$.2DLL+04DLL-LL&||r+ctjtdd|_|j|_|jj
|_d|_y)z6Free all data structures used during DOM construction.NF)theDOMImplementationcreateDocumentrdocumentcurNode
_elem_info_cdatar-s r)rtzExpatBuilder.resets>,;;T4)
}}--22r+c|j|_|j|_|j|_|j|_|jjr|j|_|j|_
|jjr|j|_|jj"r4|j$|_|j(|_|j,|_n|j0|_|j2|_|j6|_|j:|_|j>|_ y)z>Install the callbacks needed to build the DOM into the parser.N)!start_doctype_decl_handlerStartDoctypeDeclHandlerfirst_element_handlerStartElementHandlerend_element_handlerEndElementHandler
pi_handlerProcessingInstructionHandlerrnrentity_decl_handlerEntityDeclHandlernotation_decl_handlerNotationDeclHandlercommentscomment_handlerCommentHandlercdata_sectionsstart_cdata_section_handlerStartCdataSectionHandlerend_cdata_section_handlerEndCdataSectionHandlercharacter_data_handler_cdataCharacterDataHandlercharacter_data_handlerexternal_entity_ref_handlerExternalEntityRefHandlerxml_decl_handlerXmlDeclHandlerelement_decl_handlerElementDeclHandlerattlist_decl_handlerAttlistDeclHandlerr'parsers  r)r~zExpatBuilder.installs*.)H)H&%)%?%?"#'#;#; .2oo+==!!'+'?'?F$%)%?%?"==!!$($8$8F!==''.2.N.NF+,0,J,JF)*.*K*KF'*.*E*EF'*.*J*J' $ 5 5$($=$=!$($=$=!r+c||j}d}	|jdx}rQ|j|d|r'|jjr|j|d}|jdx}rQ|jdd|j}|jd|_|S#t$rY0wxYw)zIParse a document from a file object, returning the document
        node.Ti@Fr+N)	rreadParserdocumentElement
_setup_subsetParseEscapertrs)r'filerfirst_bufferbufferdocs      r)	parseFilezExpatBuilder.parseFiles!	 IIg..&.VU+DMM$A$A&&v.$	!IIg..&.

LLd#mm


		sA#B/8B//	B;:B;c|j}	|j|d|j||j}|jd|_|S#t$rY0wxYw)z<Parse a document from a string, returning the document node.TN)rrrrrrtrs)r'stringrrs    r)parseStringzExpatBuilder.parseStringsc!	LL&v&mm


		s#A	A&%A&c|jjrGt}|j||j	}||jj_yy)z/Load the internal subset if there might be one.N)rdoctypeInternalSubsetExtractorr	getSubsetinternalSubset)r'r	extractorsubsets    r)rzExpatBuilder._setup_subsetsJ==  /1I!!&)((*F39DMM!!0	!r+c~|jjj|||}|j|_t	|j|||j_|jrn|jj|tk(rLd|j_|jjd=d}d|j_d|j_|rb|"g|j_g|j_d|j_d|j_|j$|j_yyN)rimplementationcreateDocumentType
ownerDocumentr
rrq
acceptNode
FILTER_REJECT
childNodesrsrrr_seq	notationsrrend_doctype_decl_handlerEndDoctypeDeclHandler)r'doctypeNamesystemIdpublicIdhas_internal_subsetrs      r)rz'ExpatBuilder.start_doctype_decl_handlers--..AA8- $

dmmW- '

<<DLL33G<
M$(DMM!

((,G-1DLL*/3DLL,"(*  %)+!!&*.DLL'8<DLL5151N1NDLL.
r+c|jjr|j|j_|j
|j_|js|jst|_
yyyr&)rnrrrsrrrrrqr_finish_end_elementr-s r)rz%ExpatBuilder.end_doctype_decl_handlersM==!!*.*>*>DLL'48OO14<<')D$$0r+c|jj||}t|j||jr?|jj|tk(r|jj|yyyr&)rcreateProcessingInstructionr
rrqrrremoveChild)r'targetdatanodes    r)rzExpatBuilder.pi_handler	s]}}88FdllD)<<DLL33D9]JLL$$T*K<r+c|jj}|jrZ|jr+|djt
k(r|dj
|y|jj|}d|_n`|r2|djtk(r|d}|j|z}||_
ytj}||_
|j|_
t|j|y)NrT)rrr_cdata_continuenodeTypeCDATA_SECTION_NODE
appendDatarcreateCDATASection	TEXT_NODErrTextrr
)r'rrrvalues     r)rz)ExpatBuilder.character_data_handler_cdatas\\,,
;;&& n--1CC2))$/==33D9D#'D 
JrN33y@b>DII$EDI<<>DDI!%DdllD)r+c2|jj}|r0|djtk(r|d}|j|z|_ytj}|j|z|_|j|_t|j|yr)
rrrrrrrrrr
)r'rrrs    r)rz#ExpatBuilder.character_data_handler#sv\\,,
*R.11Y>b>D		D(DI||~II$	!]]dllD)r+c|ry|jjsy|jj||||}|6|jj	|}	|j
j
|	|jjjjj
||jrO|jj|tk(r,|jjjjd=yyyr)rnrr_create_entitycreateTextNoderappendrrrqrr)
r'
entityNameis_parameter_entityrbaserrnotationNamerchilds
          r)rz ExpatBuilder.entity_decl_handler.s}}%%}}++J,4lDMM007EOO""5)

&&++2248<<DLL33D9]J

%%..33B7K<r+cf|jj|||}|jjjjj||jrO|jj|tk(r,|jjjjd=yyyr)	r_create_notationrrrrrqr
FILTER_ACCEPT)r'rrrrrs      r)rz"ExpatBuilder.notation_decl_handler@s}}--lHhO

'',,33D9<<DLL33D9]J

%%//44R8K<r+c|jj|}t|j||jr?|jj|tk(r|jj|yyyr&)r
createCommentr
rrqrrr)r'rrs   r)rzExpatBuilder.comment_handlerFs[}}**40dllD)<<DLL33D9]JLL$$T*K<r+c d|_d|_y)NTFrrr-s r)rz(ExpatBuilder.start_cdata_section_handlerLs$r+c d|_d|_y)NFrr-s r)rz&ExpatBuilder.end_cdata_section_handlerPs$r+cyNr3rT)r'contextrrrs     r)rz(ExpatBuilder.external_entity_ref_handlerTsr+c|j|jst|_|j|j_|j	||yr&)rqrrrstart_element_handlerrr)r'rb
attributess   r)rz"ExpatBuilder.first_element_handlerWs?<<')D$/3/I/I,""44r+c|jj|}t|j|||_|rjt	dt|dD]Q}t
j||tdt}||dz}||_
|j|_t||S||jjur|j|yy)Nrr^r3)r
createElementr
rranger`rAttrrrrrrrrr)r'rbrriars       r)rz"ExpatBuilder.start_element_handler]s}}**40dllD)1c*oq1
-LLA!%|5"1Q3"&--#D!,

-t}}444&&t,5r+cT|jr||jjury|jj|}|tk(rt|n|tk(rt|ny|j|_	|jj||jyyr&)rqrrstartContainerrRejecterFILTER_SKIPSkipper
parentNoderrunlink)r'rfilts   r)rrz"ExpatBuilder._finish_start_elementns<<t}}444<<..t4D}$$
??DLOO''-KKM#r+c`|j}|j|_|j|yr&)rrr)r'rbrs   r)rz ExpatBuilder.end_element_handlers&,,))  )r+c^|jj|j}|r|j|||jrh||j
jury|jj|tk(r,|jj||jyyyr&)rgetr$_handle_white_text_nodesrqrrrrrrr)r'rr9s   r)rz ExpatBuilder._finish_end_elements""7??3))'48<<$--777||&&w/=@((1 Ar+c(|jjs|jsyg}|jD]B}|jt
k(s|jjr2|j|D|D]}|j|yr&)
rnwhitespace_in_element_contentrErrrrstriprr)r'rr9Lrs     r)r	z%ExpatBuilder._handle_white_text_nodess}MM77((*

__	 E~~*5::3C3C3E	 
	$EU#	$r+c|jj|}|t|||j|<y||_yr&)rrr r#)r'rbr(r9s    r)rz!ExpatBuilder.element_decl_handlers9""4(<$/e$<DOOD! DKr+c
|jj|}|t|}||j|<|jj	d|dd|d||gyNr)rrr r"r)r'elemrbrDdefaultrequiredr9s       r)rz!ExpatBuilder.attlist_decl_handlersZ""4(<t$D$(DOOD!
4tWax@	Br+c||j_||j_|dk\r&|rd|j_yd|j_yy)NrTF)rversionencoding
standalone)r'rrrs    r)rzExpatBuilder.xml_decl_handlersA '

!)

?+/

(+0

(	r+r&) rPrQrR__doc__r*rxrrtr~rrrrrrrrrrrrrrrrrrrrr	rrrrTr+r)rkrks$	>.&:O**+*(	*8$9+%%5-".*
	!$" B1r+rkc:eZdZdZdZdZdZdZeje
jeje
jeje
jej e
j"ej$e
j&ej(e
j*ej,e
j.ej0e
j2ej4e
j6ej8e
j:ej<e
j>ej@e
jBiZ"y)rpzoWrapper around a DOMBuilderFilter which implements the checks
    to make the whatToShow filter attribute work.roc||_yr&r)r'ros  r)r*z#FilterVisibilityController.__init__s	r+c|j|j}|jj|zrK|jj	|}|t
k(rt|tvrtdt|z|StS)Nz)startContainer() returned illegal value: )_nodetype_maskrro
whatToShowrFILTER_INTERRUPTr_ALLOWED_FILTER_RETURNSrareprr)r'rmaskvals    r)rz)FilterVisibilityController.startContainersz""4==1;;!!D(++,,T2C&&!!11 ADIMOOJ  r+c|j|j}|jj|zr|jj	|}|t
k(rt|tk(r7|j}|jddD]}|j|tS|tvrtdt|z|StS)Nz%acceptNode() returned illegal value: )rrrorrrrrrrappendChildrr rar!r)r'rr"r#parentrs      r)rz%FilterVisibilityController.acceptNodes""4==1;;!!D(++((.C&&!!k!!__Q/.E&&u-.%$11 =S	IKKJ  r+N)#rPrQrRrrSr*rrrELEMENT_NODErSHOW_ELEMENTATTRIBUTE_NODESHOW_ATTRIBUTEr	SHOW_TEXTrSHOW_CDATA_SECTIONENTITY_REFERENCE_NODESHOW_ENTITY_REFERENCEENTITY_NODESHOW_ENTITYPROCESSING_INSTRUCTION_NODESHOW_PROCESSING_INSTRUCTIONCOMMENT_NODESHOW_COMMENT
DOCUMENT_NODE
SHOW_DOCUMENTDOCUMENT_TYPE_NODESHOW_DOCUMENT_TYPEDOCUMENT_FRAGMENT_NODESHOW_DOCUMENT_FRAGMENT
NOTATION_NODE
SHOW_NOTATIONrrTr+r)rprps5I!!*	
**A*A**C*C**>*>**G*G""**J*J**@*@((**P*P**A*A**B*B**G*G##**K*K**B*B

Nr+rpceZdZdZdZy)FilterCrutch)_builder_level
_old_start_old_endcd|_||_|j}|j|_|j
|_|j|_|j|_yr)	r@r?rsrrArrBrr)r'rWrs   r)r*zFilterCrutch.__init__sO
 4400
%)%?%?"#'#;#; r+N)rPrQrRrSr*rTr+r)r>r>s>I<r+r>c"eZdZdZdZdZdZy)rrTcptj|||j}dD]}t||dy)N)rrrrrr)r>r*rssetattr)r'rWrrbs    r)r*zRejecter.__init__s:dG,	(D
FD$'	(r+c,|jdz|_yr)r@r'argss  r)rzRejecter.start_element_handlerskkAor+c|jdk(rT|jj}|jj||j|_|j|_y|jdz
|_yNrr3)r@r?rsr~rArrBr)r'rIrs   r)rzRejecter.end_element_handlersV;;!]]**FMM!!&))-F&'+}}F$++/DKr+N)rPrQrRrSr*rrrTr+r)rrsI
(&*r+rceZdZdZdZdZy)rrTc|jj}|j||jj|ur|jdz|_yyr)r?rrAr@)r'rIrs   r)rzSkipper.start_element_handler*sE}}$$==  ,++/DK-r+c|jdk(rR|j|jj_|j
|jj_d|_y|jdz
|_|j
|yrK)r@rAr?rsrrBrrHs  r)rzSkipper.end_element_handler0s`;;!9=DMM!!56:mmDMM!!3 DM++/DKDMM4 r+N)rPrQrRrSrrrTr+r)rr'sI*	!r+rz8http://xml.python.org/entities/fragment-builder/internalz<!DOCTYPE wrapper
  %%s [
  <!ENTITY fragment-builder-internal
    SYSTEM "%s">
%%s
]>
<wrapper %%s
>&fragment-builder-internal;</wrapper>c<eZdZdZd
dZdZdZdZdZdZ	d	Z
y)FragmentBuilderzBuilder which constructs document fragments given XML source
    text and a context node.

    The context node is expected to provide information about the
    namespace declarations which are in scope at the start of the
    fragment.
    Nc|jtk(r||_||_n|j|_||_t
j
||yr&)rr5originalDocumentrrrkr*)r'rrus   r)r*zFragmentBuilder.__init__XsD},$+D!"DL$+$9$9D!"DLdG,r+c<tj|d|_yr&)rkrtfragmentr-s r)rtzFragmentBuilder.resetas4 
r+c@|j|jS)zRParse a document fragment from a file object, returning the
        fragment node.)rrr'rs  r)rzFragmentBuilder.parseFilees		,,r+c||_|j}|jj}d}|rd|jxs|j}|jrd|jd|jd}n|jrd|jz}nd}|j}t|||fz}	|j|d|j}|j|S#|jxYw)zMParse a document fragment from a string, returning the
        fragment node.zPUBLIC "z" ""zSYSTEM "%s"T)
_sourcerrRrr_getDeclarationsrr_getNSattrs_FRAGMENT_BUILDER_TEMPLATErrtrT)	r'rrridentrnsattrsrrTs	         r)rzFragmentBuilder.parseStringjs!''//++Ft/D/D/FF#,,g.>.>@!!%(8(88F""$-0HH	LL4(==


	JJLs5C%%C8c:|jjj}d}|rut|jj
D]s}|jj
|}|r|dz}|d|j}|jr |d|jd|jd}b|d|jd}ut|jj
D]}|jj
|}|r|dz}|d|j}|jr |d|jd|jd	}n;|jr|d|jd	}n|d
|jjd	}|jr|d|j}|dz}|S)
zRe-create the internal subset from the DocumentType node.

        This is only needed if we don't already have the
        internalSubset as a string.
        rXz
  z<!NOTATION z	 PUBLIC "z"
             "z">z	 SYSTEM "z	<!ENTITY rYz "z
 NOTATION >)rrrrrlengthitemnodeNamerrr
firstChildrr)r'rrXrnotationrs      r)r[z FragmentBuilder._getDeclarationsso,,,,447,,334	
C",,11!4F
A)*H,=,=>$$h//1B1BDA./0A0ABA	
C7++223
 ))..q1F
A'(&//:??foov@A__,-v?A%&(9(9(>(>?A&&,-v/B/BCAG
r+cy)NrXrTr-s r)r\zFragmentBuilder._getNSattrssr+c|tk(r|j}|j}|jj	|}|j
|_|jj
|_|j|_	|j|jd||_||_d|_	ytj|||||S#||_||_d|_	wxYw)NTr)$_FRAGMENT_BUILDER_INTERNAL_SYSTEM_IDrrrsExternalEntityParserCreaterRcreateDocumentFragmentrTrrZrkr)r'rrrrold_documentold_cur_noders        r)rz+FragmentBuilder.external_entity_ref_handlers;; ==L<<L\\<<WEF 11DM MM@@BDM==DL
$T\\40+ ,
#;;gtXx9
9 , ,
#s?C

C!r&)rPrQrRrr*rtrrr[r\rrTr+r)rPrPOs+--
8"H9r+rPc.eZdZdZdZdZdZdZdZy)
Namespacesz7Mix-in class for builders; adds support for namespaces.cg|_yr&)_ns_ordered_prefixesr-s r)_initNamespaceszNamespaces._initNamespacess%'!r+c@tjd}d|_|S)z'Create a new namespace-handling parser.r[)namespace_separatorT)r	rwnamespace_prefixesrs  r)rxzNamespaces.createParsers##<$(!
r+ctj|||jjr|j|_yy)z.Insert the namespace-handlers onto the parser.N)rkr~rnnamespace_declarationsstart_namespace_decl_handlerStartNamespaceDeclHandlerrs  r)r~zNamespaces.installs5T6*==//11
,0r+c>|jj||fy)z/Push this namespace declaration on our storage.N)rqr)r'rgres   r)rxz'Namespaces.start_namespace_decl_handlers!!((&#7r+cd|vrt||\}}}}nt}|}d}t}tj||||}|j
|_t|j|||_|jr|jD]u\}}|r*tjt|d|zt|d}n tjdtdt}||_
|j
|_t||w|jdd=|r|j|j }	|j"}
t%dt'|dD]}||}||dz}
d|vr6t||\}}}}tj||||}||	|<||
||f<n0tj|t|t}||	|<||
t|f<|j
|_|
|_
||_yy)Nr[xmlns:xmlnsrr^r3)rirrrElementrrr
rrqrrYrrr_ensure_attributes_attrs_attrsNSrr`ownerElement)r'rbrrerfrgrhrrrrrr8rs              r)rz Namespaces.start_element_handlers$;,:4,F)CFE!CEI!Fuc69=!]]dllD)$$#88	
-WT8f3D%E%4fgGA Wo%,l<A"&--#D!,	
-))!,##%[[F}}H1c*oq1
&"1
"1Q3%<4B44O1CFEUCFCA$%F5M12Hc9-.UO%*L:A$%F5M9:Hou56"&--!%
&	r+N)
rPrQrRrrrrxr~rxrrrTr+r)roros$A'
38-&^r+roceZdZdZdZy)ExpatBuilderNSz*Document builder that supports namespaces.cNtj||jyr&)rkrtrrr-s r)rtzExpatBuilderNS.reset&s4 r+N)rPrQrRrrtrTr+r)rr#s
4r+rceZdZdZdZdZy)FragmentBuilderNSz*Fragment builder that supports namespaces.cNtj||jyr&)rPrtrrr-s r)rtzFragmentBuilderNS.reset.sd#r+cd}|j}g}|rtt|drY|jjD]<\}}||vr|j	||rd|z}nd}|r|d|d|d}4d|d|d}>|j
}|rt|S)	zNReturn string of namespace attributes from this element and
        ancestors.rX_ns_prefix_urir|r}z
    z=''r[)rhasattrritemsrr)r'attrsrr
rgredeclnames       r)r\zFragmentBuilderNS._getNSattrs2s,,w 01#*#9#9#?#?#A=KFC{ HHV$#+f#4#*5:Hc J/7 <=((G r+N)rPrQrRrrtr\rTr+r)rr+s4r+rceZdZdZy)rzEException raised to short-circuit parsing in InternalSubsetExtractor.N)rPrQrRrrTr+r)rrPsOr+rc>eZdZdZdZdZdZdZdZdZ	dZ
d	Zy)
rzBXML processor which can rip out the internal document type subset.Nc|jS)z'Return the internal subset as a string.)rr-s r)rz!InternalSubsetExtractor.getSubsetYs{{r+cP	tj||y#t$rYywxYwr&)rkrrrVs  r)rz!InternalSubsetExtractor.parseFile]s)	""4.			%%cP	tj||y#t$rYywxYwr&)rkrr)r'rs  r)rz#InternalSubsetExtractor.parseStringcs)	$$T62		rcH|j|_|j|_yr&)rrrrrs  r)r~zInternalSubsetExtractor.installis)-)H)H&%)%?%?"r+c|rD|j}g|_|jj|_|j|_yt
r&)rrrDefaultHandlerrrr)r'rbrrrrs      r)rz2InternalSubsetExtractor.start_doctype_decl_handlerms@^^%FDK$(KK$6$6F!+/+H+HF(-r+cdj|jjddjdd}||_t)NrXz


)joinrreplacer)r'rXs  r)rz0InternalSubsetExtractor.end_doctype_decl_handlerws=GGDKK ((6>>tTJmr+ctr&)r)r'rbrs   r)rz-InternalSubsetExtractor.start_element_handler|s
mr+)rPrQrRrrrrrr~rrrrTr+r)rrTs.L
F@ 
r+rc|rt}n
t}t|tr(t	|d5}|j|}ddd|S|j|}|S#1swYSxYw)z{Parse a document, returning the resulting Document node.

    'file' may be either a file name or an open file object.
    rbN)rrk
isinstancestropenr)r
namespacesrWfpresults     r)parsersq
 ".$
$
	+&&r*F	+M""4(M		+MsA##A-cR|rt}n
t}|j|S)zOParse a document from a string, returning the resulting
    Document node.
    )rrkr)rrrWs   r)rrs' ".v&&r+c|rt|}nt|}t|tr(t	|d5}|j|}ddd|S|j|}|S#1swYSxYw)zParse a fragment of a document, given the context from which it
    was originally extracted.  context should be the parent of the
    node(s) which are in the fragment.

    'file' may be either a file name or an open file object.
    rN)rrPrrrr)rrrrWrrs      r)
parseFragmentrsv#G,!'*$
$
	+&&r*F	+M""4(M		+MsA%%A/cV|rt|}nt|}|j|S)zParse a fragment of a document from a string, given the context
    from which it was originally extracted.  context should be the
    parent of the node(s) which are in the fragment.
    )rrPr)rrrrWs    r)parseFragmentStringrs,
#G,!'*v&&r+cF|jrt|St|S)z,Create a builder based on an Options object.)rrrk)rus r)makeBuilderrs!g&&G$$r+)T)3rxml.domrrrrrrxml.parsersr	xml.dom.minidomr
rxml.dom.NodeFilterrrrr5DOMBuilderFilterrrrrgetDOMImplementationrTypeInfor6objectr rYrirkr rpr>rrrir]rProrr	ExceptionrrrrrrrrTr+r)<module>rs/:.-BB>)NN	,,""
++99
++99
))55..??3w335!  w/   }5   x0   z2   t,   w/   x0   y1   z2

1(&1(f,6&y1y1|	)-E7
7
t
<6
<*|*8!l!2?%*+	+r9lr9j\.\.~Z"
O"J	)	)l)X$'(	'%r+