a i"@sgdZdZddlZddlZddlZddlZddlZddlZddlZddl m Z Gddde Z dd Z Gd d d Zifd d Zd]ddZd^ddZeZGdddZGdddZejddZd_ddZddZdZz eeZWneyYn0ddZdd Zeeed!Zd"d#Zd$d%d&d'd(d)d*d+Z e e_ d,d-Z!d.d/Z"d0d1Z#d2d3Z$d`ddd4d5d6d7Z%Gd8d9d9ej&Z'daddd4d5d:d;Z(dZ>Wne?ytYn 0e>eedS)i)CommentdumpElement ElementTree fromstringfromstringlistindent iselement iterparseparse ParseErrorPIProcessingInstructionQName SubElementtostring tostringlist TreeBuilderVERSIONXMLXMLID XMLParser XMLPullParserregister_namespace canonicalizeC14NWriterTargetz1.3.0N) ElementPathc@s eZdZdS)r N)__name__ __module__ __qualname__r!r!-/usr/lib64/python3.9/xml/etree/ElementTree.pyr js r cCs t|dS)Ntag)hasattr)elementr!r!r"rxsrc@seZdZdZdZdZdZifddZddZddZ dd Z d d Z d d Z ddZ ddZddZddZddZddZddZddZddZd6d d!Zd7d"d#Zd8d$d%Zd9d&d'Zd(d)Zd:d*d+Zd,d-Zd.d/Zd0d1Zd;d2d3Zd4d5Z dS))r)rr#idr,r!r!r"__repr__szElement.__repr__cCs |||SN)r))r,r#r*r!r!r" makeelements zElement.makeelementcCstdt|S)Nz7elem.copy() is deprecated. Use copy.copy(elem) instead.)warningswarnDeprecationWarning__copy__r0r!r!r"copys z Element.copycCs0||j|j}|j|_|j|_||dd<|Sr2)r3r#r*texttail)r,elemr!r!r"r7s  zElement.__copy__cCs t|jSr2)lenr+r0r!r!r"__len__szElement.__len__cCstjdtddt|jdkS)NzyThe behavior of this method will change in future versions. Use specific 'len(elem)' or 'elem is not None' test instead. stacklevelr)r4r5 FutureWarningr<r+r0r!r!r"__bool__s zElement.__bool__cCs |j|Sr2r+r,indexr!r!r" __getitem__szElement.__getitem__cCs8t|tr |D]}||qn ||||j|<dSr2)r&slice_assert_is_elementr+)r,rEr%eltr!r!r" __setitem__s   zElement.__setitem__cCs |j|=dSr2rCrDr!r!r" __delitem__szElement.__delitem__cCs|||j|dSr2rHr+appendr, subelementr!r!r"rMs zElement.appendcCs$|D]}|||j|qdSr2rL)r,elementsr%r!r!r"extends zElement.extendcCs|||j||dSr2)rHr+insert)r,rErOr!r!r"rRs zElement.insertcCs t|tstdt|jdS)Nzexpected an Element, not %s)r& _Element_Pyr(typer)r,er!r!r"rHs zElement._assert_is_elementcCs|j|dSr2)r+removerNr!r!r"rV s zElement.removecCst|||Sr2)rfindr,path namespacesr!r!r"rWs z Element.findcCst||||Sr2)rfindtextr,rYdefaultrZr!r!r"r[&s zElement.findtextcCst|||Sr2)rfindallrXr!r!r"r^4s zElement.findallcCst|||Sr2)riterfindrXr!r!r"r_?s zElement.iterfindcCs |jg|_d|_|_dSr2)r*clearr+r9r:r0r!r!r"r`Js z Element.clearcCs|j||Sr2)r*get)r,keyr]r!r!r"raUs z Element.getcCs||j|<dSr2)r*)r,rbvaluer!r!r"setbsz Element.setcCs |jSr2)r*keysr0r!r!r"relsz Element.keyscCs |jSr2)r*itemsr0r!r!r"rfus z Element.itemsccsD|dkr d}|dus|j|kr$|V|jD]}||EdHq*dS)N*)r#r+iter)r,r#rUr!r!r"rhs  z Element.iterccsX|j}t|ts|durdS|j}|r,|V|D]"}|EdH|j}|r0|Vq0dSr2)r#r&strr9itertextr:)r,r#trUr!r!r"rjszElement.itertext)N)NN)N)N)N)N)!rrr r#r*r9r:r.r1r3r8r7r=rBrFrJrKrMrQrRrHrVrWr[r^r_r`rardrerfrhrjr!r!r!r"r}s<           rcKs&i||}|||}|||Sr2)r3rM)parentr#r*r-r%r!r!r"rs   rcCstt}||_|Sr2)rrr9)r9r%r!r!r"rs rcCs&tt}||_|r"|jd||_|S)N )rr r9)targetr9r%r!r!r"r s r c@sVeZdZdddZddZddZdd Zd d Zd d ZddZ ddZ ddZ dS)rNcCs|rd||f}||_dS)Nz{%s}%sr9)r,Z text_or_urir#r!r!r"r.s zQName.__init__cCs|jSr2ror0r!r!r"__str__sz QName.__str__cCsd|jj|jfS)Nz<%s %r>)r)rr9r0r!r!r"r1szQName.__repr__cCs t|jSr2)hashr9r0r!r!r"__hash__szQName.__hash__cCs t|tr|j|jkS|j|kSr2r&rr9r,otherr!r!r"__le__s  z QName.__le__cCs t|tr|j|jkS|j|kSr2rsrtr!r!r"__lt__s  z QName.__lt__cCs t|tr|j|jkS|j|kSr2rsrtr!r!r"__ge__s  z QName.__ge__cCs t|tr|j|jkS|j|kSr2rsrtr!r!r"__gt__s  z QName.__gt__cCs t|tr|j|jkS|j|kSr2rsrtr!r!r"__eq__s  z QName.__eq__)N) rrr r.rpr1rrrvrwrxryrzr!r!r!r"rs rc@szeZdZdddZddZddZddd Zdd d Zdd d ZdddZ dddZ d ddZ d!ddddZ ddZ dS)"rNcCs||_|r||dSr2)_rootr )r,r%filer!r!r"r.szElementTree.__init__cCs|jSr2r{r0r!r!r"getrootszElementTree.getrootcCs ||_dSr2r})r,r%r!r!r"_setroot"szElementTree._setrootcCsd}t|dst|d}d}zt|durVt}t|drV|||_|jW|rT|S|d}|sfqr||qV||_|jW|r|Sn|r|0dS)NFreadrbT _parse_wholei)r$openrrr{closerfeed)r,sourceparser close_sourcedatar!r!r"r ,s4         zElementTree.parsecCs |j|Sr2)r{rhr,r#r!r!r"rhQs zElementTree.itercCs:|dddkr,d|}tjd|tdd|j||SNr/.zThis search is broken in 1.3 and earlier, and will be fixed in a future version. If you rely on the current behaviour, change it to %rr>r?)r4r5rAr{rWrXr!r!r"rW]s zElementTree.findcCs<|dddkr,d|}tjd|tdd|j|||Sr)r4r5rAr{r[r\r!r!r"r[ss zElementTree.findtextcCs:|dddkr,d|}tjd|tdd|j||Sr)r4r5rAr{r^rXr!r!r"r^s zElementTree.findallcCs:|dddkr,d|}tjd|tdd|j||Sr)r4r5rAr{r_rXr!r!r"r_s zElementTree.iterfindTshort_empty_elementsc Cs|s d}n|tvrtd||s4|dkr0d}nd}t||\}}|dkr~|sp|dur~|dkr~|dvr~|d|f|d krt||jn,t|j|\} } t|} | ||j| | |d Wdn1s0YdS) Nxmlzunknown method %rc14nutf-8us-asciiunicode)rrz$ r9r) _serialize ValueError _get_writerlower_serialize_textr{ _namespaces) r,file_or_filenameencodingxml_declarationdefault_namespacemethodrwriteZdeclared_encodingqnamesrZZ serializer!r!r"rs4     zElementTree.writecCs|j|ddS)Nr)r)r)r,r|r!r!r" write_c14nszElementTree.write_c14n)NN)N)N)N)NN)N)N)NNNN)rrr r.r~rr rhrWr[r^r_rrr!r!r!r"r s"  %     5rc cs^z |j}Wn^tyh|dkr(d}t|d|dd}|j|fVWdn1sZ0YYn0|dkr|t|ddpdfVnt}t|tj r|}nft|tj rt |}| |j nBt }dd|_||_z|j|_|j|_WntyYn0tj||dd d }| |j |j|fVWdn1sP0YdS) Nrrwxmlcharrefreplace)rerrorsrcSsdSNTr!r!r!r!r"z_get_writer.. )rrnewline)rAttributeErrorrrgetattr contextlib ExitStackr&ioBufferedIOBase RawIOBaseBufferedWritercallbackdetachwritableseekabletell TextIOWrapper)rrrr|stackr!r!r"rsB   0        rcsddiird<fdd}|D]}|j}t|trZ|jvr||jn.add_qname) rhr#r&rr9rirr rrf)r;rrr#rbrcr9r!rr"r#s4         rc Ks|j}|j}|tur$|d|nv|tur<|d|n^||}|dur||r\|t||D]}t|||d|dq`n|d|t|} | s|r2|rt|dddD](\} } | rd| } |d | t | fq| D]L\} } t | t r| j} t | t r|| j} nt | } |d || | fq|sHt |sH|s|d |rb|t||D]}t|||d|dqf|d |d n|d |j r|t|j dS)N r.rb: xmlns%s="%s" %s="%s">)r#r9rr _escape_cdata_serialize_xmllistrfsorted_escape_attribr&rr<r:) rr;rrZrkwargsr#r9rUrfvkr!r!r"r`s\              r) ZareabaseZbasefontbrcolframehrZimginputZisindexlinkmetaZparamc Ks|j}|j}|tur(|dt|n|turD|dt|nh||}|dur|rd|t||D]}t|||dqhn,|d|t|}|s|r8|rt|dddD](\} } | rd| } |d| t | fq|D]N\} } t | t r| j} t | t r|| j} nt | } |d || | fq|d | } |rx| d ksb| d krl||n |t||D]}t|||dq|| tvr|d |d |jr|t|jdS)NrrrcSs|dSrr!rr!r!r"rrz!_serialize_html..rrrrrZscriptstyler)r#r9rrr _serialize_htmlrrfrrr&r_escape_attrib_htmlr HTML_EMPTYr:) rr;rrZrr#r9rUrfrrZltagr!r!r"rsX            rcCs*|D] }||q|jr&||jdSr2)rjr:)rr;partr!r!r"rs  r)rhtmlr9cCsLtd|rtdttD]\}}||ks8||kr t|=q |t|<dS)Nzns\d+$z'Prefix format reserved for internal use)rematchrrrrf)rrrrr!r!r"rs rrrZrdfZwsdlZxsZxsiZdc)$http://www.w3.org/XML/1998/namespacezhttp://www.w3.org/1999/xhtmlz+http://www.w3.org/1999/02/22-rdf-syntax-ns#z http://schemas.xmlsoap.org/wsdl/z http://www.w3.org/2001/XMLSchemaz)http://www.w3.org/2001/XMLSchema-instancez http://purl.org/dc/elements/1.1/cCstd|t|jfdS)Nzcannot serialize %r (type %s))r(rTrror!r!r"rsrc CsfzBd|vr|dd}d|vr*|dd}d|vr>|dd}|WSttfy`t|Yn0dS)N&&r<r>replacer(rrror!r!r"rs   rc Cszd|vr|dd}d|vr*|dd}d|vr>|dd}d|vrR|dd}d |vrf|d d }d |vrz|d d }d |vr|d d}|WSttfyt|Yn0dS)Nrrrrrr"" z rz  z rror!r!r"rs$       rc CsfzBd|vr|dd}d|vr*|dd}d|vr>|dd}|WSttfy`t|Yn0dS)Nrrrrrrrror!r!r"r.s   rT)rrrcCs:|dkrtnt}t|j||||||d|S)Nrrrrr)rStringIOBytesIOrrgetvalue)r%rrrrrstreamr!r!r"r=s rc@s4eZdZddZddZddZddZd d Zd S) _ListDataStreamcCs ||_dSr2)lst)r,rr!r!r"r.Wsz_ListDataStream.__init__cCsdSrr!r0r!r!r"rZsz_ListDataStream.writablecCsdSrr!r0r!r!r"r]sz_ListDataStream.seekablecCs|j|dSr2)rrM)r,br!r!r"r`sz_ListDataStream.writecCs t|jSr2)r<rr0r!r!r"rcsz_ListDataStream.tellN)rrr r.rrrrr!r!r!r"rUs rcCs*g}t|}t|j||||||d|S)Nr)rrr)r%rrrrrrrr!r!r"rfs rcCsLt|tst|}|jtjdd|j}|r<|ddkrHtjddS)Nr)rr)r&rrsysstdoutr~r:)r;r:r!r!r"rss  r cs`t|tr|}|dkr(td|t|s4dSd|gfdd|ddS)Nrz,Initial indentation level must be >= 0, got rcs|d}z |}Wn(ty<|}|Yn0|jrN|jsT||_|D],}t|rn|||jr~|jsX||_qX|js||_dSr) IndexErrorrMr9stripr<r:)r;levelZ child_levelZchild_indentationchild_indent_childrenZ indentationsspacer!r"rs     z indent.._indent_children)r&rr~rr<)treerrr!rr"rs rcCst}||||Sr2)rr )rrrr!r!r"r s  r csPt||dfddGfdddtjj}|d_~tS)N)events_parserc3sd}ztt|dst|d}d}dVEdH|d}|sBqN|q$}EdH|_W|r|n|r|0dS)NFrrTi@)r$r read_eventsrr_close_and_return_rootrootr)rrrr )it pullparserr!r"iterators$     ziterparse..iteratorcseZdZjZdS)z$iterparse..IterParseIteratorN)rrr __next__r!)rrr!r"IterParseIteratorsr)r collectionsabcIteratorr next)rrrrr!)r rrrr"r s r c@sDeZdZdddddZddZddZd d Zd d Zd dZdS)rN)r cCs<t|_|pttd|_|dur(d}|j|j|dS)Nrn)end)rdeque _events_queuerrr  _setevents)r,rr r!r!r"r.s  zXMLPullParser.__init__c Cs\|jdurtd|rXz|j|Wn0tyV}z|j|WYd}~n d}~00dS)Nz!feed() called after end of stream)r rr SyntaxErrorrrM)r,rexcr!r!r"r s zXMLPullParser.feedcCs|j}d|_|Sr2)r r)r,r r!r!r"r s z$XMLPullParser._close_and_return_rootcCs |dSr2)r r0r!r!r"rszXMLPullParser.closeccs.|j}|r*|}t|tr"|q|VqdSr2)rpopleftr& Exception)r,reventr!r!r"r "s  zXMLPullParser.read_eventscCs |jdurtd|jdS)Nz"flush() called after end of stream)r rflushr0r!r!r"r 0s zXMLPullParser.flush)N) rrr r.rr rr r r!r!r!r"rs   rcCs"|sttd}|||SNrrrrr)r9rr!r!r"r6s   rcCsR|sttd}|||}i}|D]}|d}|r.|||<q.||fS)Nrr/)rrrrrhra)r9rrZidsr;r/r!r!r"rGs      rcCs,|sttd}|D]}||q|Sr!r")Zsequencerr9r!r!r"r_s   rc@sdeZdZddddddddZddZdd Zd d Zd d ZddZddZ dddZ ddZ dS)rNF)comment_factory pi_factoryinsert_comments insert_piscCsdg|_g|_d|_d|_d|_|dur*t}||_||_|durBt}||_ ||_ |durZt }||_ dSr2) _data_elem_lastr{_tailr_comment_factoryr%r _pi_factoryr&r_factory)r,Zelement_factoryr#r$r%r&r!r!r"r.s zTreeBuilder.__init__cCs|jSr2r}r0r!r!r"rszTreeBuilder.closecCs>|jr:|jdur4d|j}|jr,||j_n||j_g|_dSNr)r'r)joinr*r:r9r,r9r!r!r"_flushs   zTreeBuilder._flushcCs|j|dSr2)r'rMr,rr!r!r"rszTreeBuilder.datacCsX|||||_}|jr2|jd|n|jdurB||_|j|d|_|S)Nrr)r1r-r)r(rMr{r*)r,r#attrsr;r!r!r"starts  zTreeBuilder.startcCs ||j|_d|_|jSr)r1r(popr)r*rr!r!r"rs zTreeBuilder.endcCs||j|j|Sr2)_handle_singler+r%r0r!r!r"comments zTreeBuilder.commentcCs||j|j||Sr2)r6r,r&)r,rnr9r!r!r"pis zTreeBuilder.picGs:||}|r6|||_|jr0|jd|d|_|S)Nrr)r1r)r(rMr*)r,factoryrRargsr;r!r!r"r6szTreeBuilder._handle_single)N)N) rrr r.rr1rr4rr7r8r6r!r!r!r"rqs   rc@steZdZdddddZddZddZd d Zd d Zd dZddZ ddZ ddZ ddZ ddZ ddZdS)rN)rnrc Cs^zddlm}Wn:tyJz ddl}WntyDtdYn0Yn0||d}|durft}||_|_||_|_ |j |_ i|_ |j |_t|dr|j|_t|dr|j|_t|dr|j|_t|dr|j|_t|d r|j|_t|d r|j|_t|d r|j|_d |_d |_d |_ d|_!i|_"zd |j#|_$Wnt%yXYn0dS)Nrexpatz7No module named expat; use SimpleXMLTreeBuilder insteadrr4rstart_nsend_nsrr7r8rzExpat %d.%d.%d)& xml.parsersr< ImportErrorZpyexpatZ ParserCreaterrr rn_targeterror_error_names_defaultZDefaultHandlerExpandr$_startStartElementHandler_endEndElementHandler _start_nsStartNamespaceDeclHandler_end_nsEndNamespaceDeclHandlerrZCharacterDataHandlerr7CommentHandlerr8ProcessingInstructionHandlerZ buffer_textordered_attributesspecified_attributes_doctypeentity version_infoversionr)r,rnrr<rr!r!r"r.sP             zXMLParser.__init__cCs8|j}|j}|D] }|dkrDd|_d|_|||jfdd}||_q|dkrf|||jfdd}||_q|dkrt|j dr|||j fd d}n||fd d}||_ q|d krt|j d r|||j fd d}n||fdd}||_ q|dkr|||fdd}||_q|dkr&|||fdd}||_qtd|qdS)Nr4rcSs|||||fdSr2r!)r#Z attrib_inrrMr4r!r!r"handler0sz%XMLParser._setevents..handlerrcSs||||fdSr2r!)r#rrMrr!r!r"rV5szstart-nsr=cSs|||||fdSr2r!)rrrrMr=r!r!r"rV<scSs|||p d|pdffdSr.r!)rrrrMr!r!r"rV@szend-nsr>cSs||||fdSr2r!)rrrMr>r!r!r"rVFscSs||dfdSr2r!)rrrMr!r!r"rVJsr7cSs|||j|fdSr2)rnr7)r9rrMr,r!r!r"rVNsr8cSs|||j||fdSr2)rnr8)Z pi_targetrrrMr,r!r!r"rVRszunknown event %r)r rMrPrQrFrGrHrIr$rnrJrKrLrMrNrOr)r,Z events_queueZevents_to_reportrrMZ event_namerVr!r!r"r#sL          zXMLParser._seteventscCs&t|}|j|_|j|jf|_|dSr2)r codelinenooffsetZposition)r,rcerrr!r!r" _raiseerrorYszXMLParser._raiseerrorcCsDz|j|}Wn0ty>|}d|vr0d|}||j|<Yn0|S)Nrr)rDKeyError)r,rbnamer!r!r"_fixname_s zXMLParser._fixnamecCs|j|p d|pdSr.)rnr=r,rrr!r!r"rJjszXMLParser._start_nscCs|j|p dSr.)rnr>)r,rr!r!r"rLmszXMLParser._end_nscCsR|j}||}i}|rDtdt|dD]}||d||||<q&|j||S)Nrr>r)r^ranger<rnr4)r,r# attr_listZfixnamer*ir!r!r"rFpszXMLParser._startcCs|j||Sr2)rnrr^rr!r!r"rH|szXMLParser._endc Cs|dd}|dkrz |jj}Wnty4YdS0z||j|ddWnXtyddlm}|d||jj |jj f}d|_ |jj |_ |jj |_ |Yn0n"|dkr|dd d krg|_n|jdur|d krd|_dS|}|sdS|j|t|j}|d kr|jd}|d kr`|dkr`|j\}}} } | r| dd} n*|dkr|dkr|j\}}} d} ndSt|jdr|j|| | ddnt|drtdtd|_dS)Nrrrrr;z'undefined entity %s: line %d, column %d r z ZPUBLICZSYSTEMdoctypezaThe doctype() method of XMLParser is ignored. Define doctype() method on the TreeBuilder target.)rnrrrSr\r?r<rBrZErrorLineNumberZErrorColumnNumberrWrXrYrRrrMr<r$rgr4r5RuntimeWarning) r,r9rZ data_handlerr<rZnrTr]Zpubidsystemr!r!r"rEsd               zXMLParser._defaultc CsHz|j|dWn0|jyB}z||WYd}~n d}~00dS)NF)rParserCr[)r,rrr!r!r"rszXMLParser.feedc Csz|jddWn0|jyB}z||WYd}~n d}~00zLz |jj}WntydYn0|W|`|`|`|`SW|`|`|`|`n|`|`|`|`0dS)NrT) rrkrCr[rnrrr rA)r,rZ close_handlerr!r!r"rs     zXMLParser.closec Cs~|j}z`z|jd|jddWn0|jyZ}z||WYd}~n d}~00W|j|n|j|0dS)NFr)rZGetReparseDeferralEnabledZSetReparseDeferralEnabledrkrCr[)r,Z was_enabledrr!r!r"r s  "zXMLParser.flush)rrr r.rr[r^rJrLrFrHrErrr r!r!r!r"rs .6  6r)out from_filecKs|dur|durtdd}|dur0t}}tt|jfi|d}|durd|||n|durxt||d|dur| SdS)Nz:Either 'xml_data' or 'from_file' must be provided as inputr)r) rrrrrrrrr r)Zxml_datarlrmoptionssiorr!r!r"rs     rz ^\w+:\w+$c@seZdZddddddddddZefddZdd Zdd d Zd d Zdj fddZ ddZ ddZ dddZ ddZddZddZdS)rFN) with_comments strip_textrewrite_prefixesqname_aware_tagsqname_aware_attrs exclude_attrs exclude_tagsc Cs||_g|_||_||_|r$t|nd|_|r6t|nd|_||_|rRt||_nd|_|rjt|j |_ nd|_ dgg|_ g|_ |s|j tt|j gi|_dg|_d|_d|_d|_d|_dS)N)rrFr)_writer'_with_comments _strip_textrd_exclude_attrs _exclude_tags_rewrite_prefixes_qname_aware_tags intersection_find_qname_aware_attrs_declared_ns_stack _ns_stackrMrrrf _prefix_map_preserve_space_pending_start _root_seen _root_done_ignored_depth) r,rrprqrrrsrtrurvr!r!r"r.s2  zC14NWriterTarget.__init__ccs ||D]}|r|EdHqdSr2r!)r,Zns_stackZ _reversedrZr!r!r"_iter_namespaces6s z!C14NWriterTarget._iter_namespacescCs\|dd\}}||jD]$\}}||krd|d|Sqtd|d|ddS)NrrrrzPrefix z of QName "" is not declared in scope)splitrrr)r,Z prefixed_namerr]rpr!r!r"_resolve_prefix_name;s z%C14NWriterTarget._resolve_prefix_namecCs|dur:|dddkr,|ddddnd|f\}}n|}t}||jD]B\}}||kr||vr|rz|d|n|||fS||qP|jr||jvr|j|}ndt|j}|j|<|jd||f|d|||fS|s d|vr |||fS||j D]J\}}||kr|jd||f|rR|d|n|||fSq|st|||fSt d|d dS) Nrrrrrrirz Namespace "r) rrdrraddr|rr<rMrr)r,rrr#Z prefixes_seenurr!r!r"_qnameBs.2      & zC14NWriterTarget._qnamecCs|js|j|dSr2)rr'rMr2r!r!r"rgszC14NWriterTarget.datarcCs||j}|jdd=|jr.|jds.|}|jdurz|jd}|_|rVt|rV|nd}|jg||R|durzdS|r|jr|t |dSNr) r'ryrrr_looks_like_prefix_namerFrrw_escape_cdata_c14n)r,Z _join_textrr: qname_textr!r!r"r1ks    zC14NWriterTarget._flushcCs0|jr dS|jr||jd||fdSr)rr'r1rrMr_r!r!r"r=ys zC14NWriterTarget.start_nscCs|jdur,|js||jvr,|jd7_dS|jr:|g}|j||jdurn||jvrn|||f|_dS||||dSr) r{rr'r1rrMr}rrF)r,r#r3new_namespacesr!r!r"r4s   zC14NWriterTarget.startcs jdur$|r$fdd|D}|h|}i}|durV|}||<||jdur|r|}|r|D]0} || } t| rv| }|| <||qvqd}nd}jfddt|dddD} |rdd|D} | ng} |rjt|D]^\} }|dur@| |vr@||vr@| ||d }| | \}} }| |r\|n| |fq | d }j |r|d knj d j }|d | |d | r|d dd| D|d|dur|t| ||d d_j gdS)Ncs i|]\}}|jvr||qSr!)rz.0rrr0r!r" rz+C14NWriterTarget._start..csi|]}||qSr!r!)rri) parse_qnamer!r"rrcSs |ddS)Nrr)r)rir!r!r"rrz)C14NWriterTarget._start..rcSs$g|]\}}|rd|nd|fqS)zxmlns:Zxmlnsr!)rrrr!r!r" sz+C14NWriterTarget._start..rz+{http://www.w3.org/XML/1998/namespace}spaceZpreserverrrcSs&g|]\}}d|dt|dqS)rmz="r)_escape_attrib_c14nrr!r!r"rrrT)rzrfrrrrrrsortrMrarrwr/rrr)r,r#r3rrrZresolved_namesrZqattrsZ attr_namercZ parsed_qnamesrarrZ attr_qnamerZspace_behaviourrr!)rr,r"rFs^        zC14NWriterTarget._startcCst|jr|jd8_dS|jr&||d||dd|jt|jdk|_|j |j dS)Nrrrr) rr'r1rwrrr5r<rrrrr!r!r"rs  zC14NWriterTarget.endcCsd|js dS|jrdS|jr&|dn|jr:|jr:||dt|d|js`|ddS)Nrz)rxrrrwrr'r1rr0r!r!r"r7s  zC14NWriterTarget.commentcCsp|jr dS|jr|dn|jr0|jr0|||rNd|dt|dn d|d|jsl|ddS)Nrz)rrrwrr'r1r)r,rnrr!r!r"r8s  $zC14NWriterTarget.pi)N)N)rrr r.reversedrrrrr/r1r=r4rFrr7r8r!r!r!r"rs %  % E  rc CszzVd|vr|dd}d|vr*|dd}d|vr>|dd}d|vrR|dd}|WSttfytt|Yn0dS) Nrrrrrrr rror!r!r"rs    rc Csz~d|vr|dd}d|vr*|dd}d|vr>|dd}d|vrR|dd}d |vrf|d d }d |vrz|d d }|WSttfyt|Yn0dS) Nrrrrrrrz rz rrrror!r!r"rs       r)rg)_set_factories)N)N)N)NN)NN)rr)N)NN)N)N)N)N)@__all__rrrr4rrcollections.abcrrrrr rrrrr r rrcontextmanagerrrrrrd NameErrorrrrrrrrrrrrrrrrr r rrrrrrrrcompileUNICODErrrrrrS _elementtreerr@r!r!r!r"Is /   0e 1 =2  2     6  2:   zp