PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB`  pY@s+ddlZddlZddlmZmZmZmZddlTddlm Z m Z ej j j ej j jfZGdddej j Z ee ddd ee d dd ee d dd ddZddZddZddZddZGddde ZGddde Zeedddeed ddeeddd Gd!d"d"eZeed#dd$eZGd%d&d&eZeddZGd'd(d(e Zeed)dd*eed dd+d,d-ZGd.d/d/ZGd0d1d1ee Z Gd2d3d3ee Z!ee!d#dd4Gd5d6d6e!Z"ee"d7dd8ee"d9dd:d;d<Z#d=d>Z$Gd?d@d@e!Z%GdAdBdBe"Z&GdCdDdDeZ'ee'd#ddEGdFdGdGZ(GdHdIdIe(ee Z)GdJdKdKe(e Z*GdLdMdMe(ee Z+GdNdOdOe Z,GdPdQdQeZ-dRdSZ.GdTdUdUe e Z/ee/dVddWdXdYZ0dZd[Z1d\d]Z2ddd^d_Z3dd`daZ4ddbdcZ5dS)dN)EMPTY_NAMESPACE EMPTY_PREFIXXMLNS_NAMESPACEdomreg)*)DOMImplementationLS DocumentLSc@sTeZdZdZdZdZdZdZeZ ddZ dddZ ddddd Z d d Z d d ZddZddZddZddZddZddZddZddZddZd d!Zd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zd,d-Zd.d/Zd0d1Z dS)2NodeNcCsdS)NT)selfr r &/opt/python35/lib/python3.5/minidom.py__bool__+sz Node.__bool__cCs|jdd|S)N) toprettyxml)r encodingr r r toxml.sz Node.toxml  cCs|dkrtj}n'tjtjd|dddd}|jtjkrp|j|d|||n|j|d|||dkr|jS|j jSdS)Nrerrorsxmlcharrefreplacenewlinerr) ioStringIO TextIOWrapperBytesIOnodeTyper DOCUMENT_NODEwritexmlgetvaluedetach)r indentnewlrwriterr r r r1s    zNode.toprettyxmlcCs t|jS)N)bool childNodes)r r r r hasChildNodesCszNode.hasChildNodescCs|jS)N)r$)r r r r _get_childNodesFszNode._get_childNodescCs|jr|jdSdS)Nr)r$)r r r r _get_firstChildIs zNode._get_firstChildcCs|jr|jdSdS)N)r$)r r r r _get_lastChildMs zNode._get_lastChildc Cso|j|jkr@x't|jD]}|j||q"W|S|j|jkrztjjdt |t |f|j dk r|j j ||dkr|j |ny|jj |}Wn!tk rtjjYnX|jtkrt||jj||||_||_|rY|j|d}||_||_n d|_||_ |S)Nz%s cannot be child of %sr()rDOCUMENT_FRAGMENT_NODEtupler$ insertBefore_child_node_typesxmldomHierarchyRequestErrrepr parentNode removeChild appendChildindex ValueError NotFoundErr_nodeTypes_with_children_clear_id_cacheinsert nextSiblingpreviousSibling)r newChildrefChildcr6noder r r r-Qs6          zNode.insertBeforecCs|j|jkr=x$t|jD]}|j|q"W|S|j|jkrztjjdt |t |fn|jt krt ||j dk r|j j |t||d|_|S)Nz%s cannot be child of %s)rr+r,r$r5r.r/r0r1r2r9r:r3r4 _append_childr<)r rAr@r r r r5qs "   zNode.appendChildc Csz|j|jkr8|j}|j||j||S|j|jkrrtjjdt |t |f||krdS|j dk r|j j|y|j j |}Wn!t k rtjjYnX||j |<||_ d|_ |jtks|jtkr"t||j|_|j|_d|_d|_|jra||j_|jrv||j_|S)Nz%s cannot be child of %s)rr+r<r4r-r.r/r0r1r2r3r$r6r7r8r9r:r=)r r>oldChildr?r6r r r replaceChilds<                 zNode.replaceChildc Csy|jj|Wn!tk r7tjjYnX|jdk rV|j|j_|jdk rt|j|j_d|_|_|jt krt |d|_ |S)N) r$remover7r/r0r8r<r=rr9r:r3)r rCr r r r4s   zNode.removeChildcCs'g}x|jD]}|jtjkr|jsl|rG|j|d_|jr_|j|j_|jq |r|dj|jkr|d}|j|j|_|j|_|jr||j_|jq |j|q|j||jtj kr|j qW||jddz>)replacewrite)r"rGr r r _write_data.srcCsbx[|jD]P}|jtjkrJ|dks=|j|krJ|j|t|||q W|S)Nr)r$rr rJtagNamerI_get_elements_by_tagName_helper)parentnamercrAr r r r5s  rcCsxy|jD]n}|jtjkr |dks=|j|kre|dksX|j|kre|j|t||||q W|S)Nr)r$rr rJryrtrI"_get_elements_by_tagName_ns_helper)rZnsURIryrrAr r r r=s rc@smeZdZejZdZdZdZdZ ej ej ej ej ejejejfZddZdS)DocumentFragmentz#document-fragmentNcCst|_dS)N)rlr$)r r r r __init__TszDocumentFragment.__init__)rqrrrsr r+rnodeName nodeValue attributesr3rJrFCDATA_SECTION_NODEENTITY_REFERENCE_NODEPROCESSING_INSTRUCTION_NODE COMMENT_NODE NOTATION_NODEr.rr r r r rFs   rc@seZdZd#ZejZd Zd Zd Z ej ej fZ e d d d d Zd dZddZddZddZeeeZZddZddZeeeZZddZddZeeeZddZdd Zd!d"Zd S)$Attr_name_valuert_prefixr$ _localNamerO ownerElementNFcCsGd|_||_||_||_t|_|jjtdS)N)rrrtrrlr$rIText)r qNamertryrur r r rbs      z Attr.__init__c Cs;y |jSWn)tk r6|jjdddSYnXdS)N:r(r))rr\rsplit)r r r r rWos  zAttr._get_localNamecCs|jS)N) specified)r r r r _get_specifieduszAttr._get_specifiedcCs|jS)N)r)r r r r _get_namexszAttr._get_namecCs)||_|jdk r%t|jdS)N)rrr:)r valuer r r _set_name{s zAttr._set_namecCs|jS)N)r)r r r r _get_valueszAttr._get_valuecCsI||_||jd_|jdk r5t|j||jd_dS)Nr)rr$rGrr:)r rr r r _set_values   zAttr._set_valuecCs|jS)N)r)r r r r _get_prefixszAttr._get_prefixcCs|j}|dkr9|r9|tkr9tjjd||_|dkrZ|j}nd||jf}|jrt|j||_ dS)Nxmlnsz5illegal use of 'xmlns' prefix for the wrong namespacez%s:%s) rtrr/r0 NamespaceErrrryrr:r)r ruZnsuriZnewNamer r r _set_prefixs         zAttr._set_prefixcCs|j}|dk rk|j|j=|j|j|jf=|jrkd|_|jd8_|jj d8_ x|j D]}|j quW|j dd=dS)NFr() r_attrsr_attrsNSrtry_is_id_magic_id_nodesrO_magic_id_countr$rH)r elemrMr r r rHs     z Attr.unlinkcCs|jr dS|j}|j}|dks7|dkr;dS|j|}|dkrZdS|jry|j|j|jS|j|jSdS)NTF) rrOr_get_elem_infortisIdNSryisIdr)r rwrinfor r r _get_isIds     zAttr._get_isIdcCs|j}|j}|dks*|dkr.tS|j|}|dkrMtS|jrl|j|j|jS|j|jSdS)N) rOr_no_typerrtgetAttributeTypeNSrygetAttributeTyper)r rwrrr r r _get_schemaTypes    zAttr._get_schemaType)rrrtrr$rrOr) rqrrrs __slots__r ATTRIBUTE_NODErrrrrFrr.rrrWrrrpropertyrrrrrrrrrurHrrr r r r rXs.            rrz True if this attribute is an ID.z'Namespace-local name of this attribute. schemaTypezSchema type for this attribute.c@sceZdZd;ZddZddZdd Zd d Zd d ZddZ ddZ ddZ ddZ dddZ eZddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:ZdS)< NamedNodeMaprr _ownerElementcCs||_||_||_dS)N)rrr)r attrsZattrsNSrr r r rs  zNamedNodeMap.__init__cCs t|jS)N)lenr)r r r r _get_lengthszNamedNodeMap._get_lengthc Cs<y|t|jj|SWntk r7dSYnXdS)N)rerkeys IndexError)r r6r r r items zNamedNodeMap.itemcCs=g}x0|jjD]}|j|j|jfqW|S)N)rvaluesrIrr)r rLrAr r r rfszNamedNodeMap.itemscCsFg}x9|jjD](}|j|j|jf|jfqW|S)N)rrrIrtryr)r rLrAr r r itemsNSs&zNamedNodeMap.itemsNScCs-t|tr||jkS||jkSdS)N) isinstancestrrr)r r^r r r __contains__s zNamedNodeMap.__contains__cCs |jjS)N)rr)r r r r rszNamedNodeMap.keyscCs |jjS)N)rr)r r r r keysNSszNamedNodeMap.keysNScCs |jjS)N)rr)r r r r rszNamedNodeMap.valuesNcCs|jj||S)N)rget)r rrr r r r szNamedNodeMap.getcCsO|jt|ddkrdSt|t|kt|t|kSdS)Nrr)rgetattrid)r rXr r r _cmpszNamedNodeMap._cmpcCs|j|dkS)Nr)r)r rXr r r __eq__szNamedNodeMap.__eq__cCs|j|dkS)Nr)r)r rXr r r __ge__szNamedNodeMap.__ge__cCs|j|dkS)Nr)r)r rXr r r __gt__szNamedNodeMap.__gt__cCs|j|dkS)Nr)r)r rXr r r __le__szNamedNodeMap.__le__cCs|j|dkS)Nr)r)r rXr r r __lt__!szNamedNodeMap.__lt__cCs)t|tr|j|S|j|SdS)N)rr,rr)r attname_or_tupler r r __getitem__$s zNamedNodeMap.__getitem__c Cst|triy|j|}Wn:tk r\t|}|jj|_|j|YnX||_n.t|tst d|}|j|dS)Nz%value must be a string or Attr object) rrrr]rrrO setNamedItemr TypeError)r attnamerrAr r r __setitem__+s    zNamedNodeMap.__setitem__c Cs,y|j|SWntk r'dSYnXdS)N)rr])r rr r r getNamedItem:s zNamedNodeMap.getNamedItemc Cs2y|j||fSWntk r-dSYnXdS)N)rr])r rtryr r r getNamedItemNS@s zNamedNodeMap.getNamedItemNScCsz|j|}|dk rgt|j|j|j=|j|j|jf=t|drcd|_ |St j j dS)Nr) rr:rrrrrtryrdrr/r0r8)r rnr r r removeNamedItemFs    zNamedNodeMap.removeNamedItemcCs}|j||}|dk rjt|j|j|j|jf=|j|j=t|drfd|_ |St j j dS)Nr) rr:rrrtryrrrdrr/r0r8)r rtryrr r r removeNamedItemNSRs    zNamedNodeMap.removeNamedItemNScCst|ts7tjjdt|t|f|jj|j}|r\|j ||j|j<||j |j |j f<|j |_t|j|S)Nz%s cannot be child of %s)rrr/r0r1r2rrrrHrrtryrrr:)r rArar r r r^s    zNamedNodeMap.setNamedItemcCs |j|S)N)r)r rAr r r setNamedItemNSkszNamedNodeMap.setNamedItemNScCs%||}t|j|jdS)N)r:rrH)r rrAr r r __delitem__ns  zNamedNodeMap.__delitem__cCs|j|j|jfS)N)rrr)r r r r __getstate__sszNamedNodeMap.__getstate__cCs|\|_|_|_dS)N)rrr)r stater r r __setstate__vszNamedNodeMap.__setstate__)rrr) rqrrrsrrrrrfrrrrrr__len__rrrrrrrrrrrrrrrrrr r r r rs:                       rlengthz$Number of nodes in the NamedNodeMap.c@sFeZdZd ZddZddZddZd d Zd S) TypeInfo namespacercCs||_||_dS)N)rr)r rrr r r rs zTypeInfo.__init__cCsA|jr&d|jj|j|jfSd|jj|jfSdS)Nz<%s %r (from %r)>z<%s %r>)r __class__rqr)r r r r __repr__s  zTypeInfo.__repr__cCs|jS)N)r)r r r r rszTypeInfo._get_namecCs|jS)N)r)r r r r _get_namespaceszTypeInfo._get_namespaceN)rr)rqrrrsrrrrrr r r r rs    rc @seZdZdDZejZd ZeZ dZ ejej ej ej ejejfZed d ddZddZddZddZddZddZddZddZdd Zd!d"Zd#d$Zd%d&ZeZd'd(Zd)d*Z d+d,Z!e!Z"d-d.Z#d/d0Z$d1d2Z%d3d4Z&d5d6Z'd7d7d7d8d9Z(d:d;Z)d<d=Z*d>d?Z+d@dAZ,dBdCZ-d S)EElementrOr3rrrurtrr$rrr<r=NrcCs]d|_||_|_||_||_t|_d|_|_d|_ d|_ dS)N) r3rrrurtrlr$r<r=rr)r rrtruryr r r rs     zElement.__init__cCs%|jdkr!i|_i|_dS)N)rr)r r r r _ensure_attributess zElement._ensure_attributesc Cs;y |jSWn)tk r6|jjdddSYnXdS)Nrr(r))rr\rr)r r r r rWs  zElement._get_localNamecCs|jS)N)r)r r r r _get_tagNameszElement._get_tagNamecCs\|jdk r9x't|jjD]}|jq%Wd|_d|_tj|dS)N)rrerrHrr )r attrr r r rHs   zElement.unlinkc CsB|jdkrdSy|j|jSWntk r=dSYnXdS)Nr)rrr])r rr r r getAttributes  zElement.getAttributec CsH|jdkrdSy|j||fjSWntk rCdSYnXdS)Nr)rrr])r rtryr r r getAttributeNSs  zElement.getAttributeNScCs{|j|}|dkrLt|}||_|j|_|j|n+||jkrw||_|jrwt|dS)N)getAttributeNoderrrOsetAttributeNoderr:)r rrrr r r setAttributes      zElement.setAttributecCst|\}}|j||}|dkrjt||||}||_|j|_|j|nL||jkr||_|jrt||j|kr||_||_ dS)N) _nssplitgetAttributeNodeNSrrrOrrr:rur)r rt qualifiedNamerru localnamerr r r setAttributeNSs       zElement.setAttributeNScCs#|jdkrdS|jj|S)N)rr)r Zattrnamer r r rszElement.getAttributeNodecCs)|jdkrdS|jj||fS)N)rr)r rtryr r r rszElement.getAttributeNodeNScCs|jd|fkr'tjjd|j|jj|jd}|dk rb|j||j j|j |j fd}|dk r||k r|j|t ||||k r|S||k r|SdS)Nzattribute node already owned) rr/r0ZInuseAttributeErrrrrrremoveAttributeNoderrtry_set_attribute_node)r rZold1Zold2r r r rs   !    zElement.setAttributeNodec Csd|jdkrtjjy|j|}Wn!tk rRtjjYnX|j|dS)N)rr/r0r8rr]r)r rrr r r removeAttributes zElement.removeAttributec Csj|jdkrtjjy|j||f}Wn!tk rXtjjYnX|j|dS)N)rr/r0r8r]r)r rtryrr r r removeAttributeNS%s zElement.removeAttributeNSc Csu|dkrtjjy|j|jWn!tk rPtjjYnXt||j|j|_dS)N) r/r0r8rrr]r:rHrO)r rAr r r r.s    zElement.removeAttributeNodecCs |jdkrdS||jkS)NF)r)r rr r r hasAttribute=szElement.hasAttributecCs&|jdkrdS||f|jkS)NF)r)r rtryr r r hasAttributeNSBszElement.hasAttributeNScCst||tS)N)rrl)r rr r r getElementsByTagNameGszElement.getElementsByTagNamecCst|||tS)N)rrl)r rtryr r r getElementsByTagNameNSJszElement.getElementsByTagNameNScCsd|jt|fS)Nz)rr)r r r r rNszElement.__repr__rc CsW|j|d|j|j}t|j}x@|D]8}|jd|t|||j|jdq=W|jrB|jdt|jdkr|jdj t j kr|jdj |dddnH|j|x+|jD] }|j |||||qW|j||jd|j|fn|jd |dS) Nr|z %s="r}r~r(rrz%sz/>%s) rr_get_attributessortedrrrr$rrr rFr) r r"r addindentr!rZa_namesZa_namerAr r r rQs$       zElement.writexmlcCs |jt|j|j|S)N)rrrr)r r r r rls zElement._get_attributescCs|jr dSdSdS)NTF)r)r r r r hasAttributesps zElement.hasAttributescCs |j|}|j|dS)N)rsetIdAttributeNode)r ridAttrr r r setIdAttributexszElement.setIdAttributecCs#|j||}|j|dS)N)rr)r rtryrr r r setIdAttributeNS|szElement.setIdAttributeNScCs|dks|j|j r.tjjt|dk rOtjj|jsd|_|jd7_|j j d7_ t |dS)NTr() rYrr/r0r8_get_containing_entrefNoModificationAllowedErrrrrOrr:)r rr r r rs  zElement.setIdAttributeNode) rOr3rrrurtrr$rrr<r=).rqrrrsrr rJrrrrrrrrFrrr.rrrrWrrHrrrrrrrZsetAttributeNodeNSrrrZremoveAttributeNodeNSrrrrrrrrrrrr r r r rsT                       rrz*NamedNodeMap of attributes on the element.z%Namespace-local name of this element.cCsJt||j||j|j<||j|j|jf<||_dS)N)r:rrrrrtryr)elementrr r r rs   rc@seZdZfZdZeZdZdZddZ ddZ ddZ dd Z d d Z d d ZddZddZdS) ChildlessNcCsdS)Nr )r r r r r'szChildless._get_firstChildcCsdS)Nr )r r r r r*szChildless._get_lastChildcCstjj|jddS)Nz nodes cannot have children)r/r0r1r)r rAr r r r5s zChildless.appendChildcCsdS)NFr )r r r r r%szChildless.hasChildNodescCstjj|jddS)Nz nodes do not have children)r/r0r1r)r r>r?r r r r-s zChildless.insertBeforecCstjj|jddS)Nz nodes do not have children)r/r0r8r)r rCr r r r4s zChildless.removeChildcCsdS)Nr )r r r r rKszChildless.normalizecCstjj|jddS)Nz nodes do not have children)r/r0r1r)r r>rCr r r rDs zChildless.replaceChild)rqrrrsrrZ EmptyNodeListr$rvrxr'r*r5r%r-r4rKrDr r r r r s         r c@seZdZejZdZddZddZddZ e ee Z d d Z d d Z e e e Zd d d ddZdS)ProcessingInstructiontargetrGcCs||_||_dS)N)r rG)r r rGr r r rs zProcessingInstruction.__init__cCs|jS)N)rG)r r r r _get_nodeValuesz$ProcessingInstruction._get_nodeValuecCs ||_dS)N)rG)r rr r r _set_nodeValuesz$ProcessingInstruction._set_nodeValuecCs|jS)N)r )r r r r _get_nodeNamesz#ProcessingInstruction._get_nodeNamecCs ||_dS)N)r )r rr r r _set_nodeNamesz#ProcessingInstruction._set_nodeNamercCs'|jd||j|j|fdS)Nz %s%s)rr rG)r r"r rr!r r r rszProcessingInstruction.writexmlN)r rG)rqrrrsr rrrrr r rrrrrrr r r r r s       r c@seZdZdZddZdd ZeZd d Zd d Ze eeZ Z ddZ ddZ ddZddZddZddZdS) CharacterData_datarOr3r=r<cCs:d|_|_d|_|_d|_tj|dS)Nr)rOr3r=r<rr r)r r r r rs zCharacterData.__init__cCs t|jS)N)rrG)r r r r rszCharacterData._get_lengthcCs|jS)N)r)r r r r _get_dataszCharacterData._get_datacCs ||_dS)N)r)r rGr r r _set_dataszCharacterData._set_datacCsK|j}t|dkr$d}nd}d|jj|dd|fS)N z...rzr)rGrrrq)r rGZ dotdotdotr r r rs   zCharacterData.__repr__cCsx|dkrtjjd|t|jkrEtjjd|dkrctjjd|j|||S)Nrzoffset cannot be negativez#offset cannot be beyond end of datazcount cannot be negative)r/r0 IndexSizeErrrrG)r offsetcountr r r substringDatas  zCharacterData.substringDatacCs|j||_dS)N)rG)r argr r r appendDataszCharacterData.appendDatacCs|dkrtjjd|t|jkrEtjjd|r{d|jd|||j|df|_dS)Nrzoffset cannot be negativez#offset cannot be beyond end of dataz%s%s%s)r/r0rrrG)r rrr r r insertDatas zCharacterData.insertDatacCs|dkrtjjd|t|jkrEtjjd|dkrctjjd|r|jd||j||d|_dS)Nrzoffset cannot be negativez#offset cannot be beyond end of datazcount cannot be negative)r/r0rrrG)r rrr r r deleteDatas  zCharacterData.deleteDatacCs|dkrtjjd|t|jkrEtjjd|dkrctjjd|rd|jd|||j||df|_dS)Nrzoffset cannot be negativez#offset cannot be beyond end of datazcount cannot be negativez%s%s%s)r/r0rrrG)r rrrr r r replaceDatas  zCharacterData.replaceDataN)rrOr3r=r<)rqrrrsrrrrrrrrGrrrrrrrr r r r rs       rzLength of the string data.c@speZdZfZejZdZdZddZ dddddZ dd Z d d Z d d Z dS)rz#textNcCs|dks!|t|jkr3tjjd|j}|j|d|_|j|_|j}|jr||jj kr|dkr|jj |n|jj |||jd||_|S)Nrzillegal offset value) rrGr/r0rrrOr<r3r$r5r-)r rZnewTextnextr r r splitText0s!    zText.splitTextrcCs!t|d||j|fdS)Nz%s%s%s)rrG)r r"r rr!r r r r?sz Text.writexmlcCs|jg}|j}xK|dk rb|jtjtjfkr^|jd|j|j}qPqW|j}xH|dk r|jtjtjfkr|j|j|j}qoPqoWdj |S)Nrr) rGr=rr rFrr;r<rIjoin)r rLrr r r _get_wholeTextDs     zText._get_wholeTextcCs|j}|j}xK|dk r_|jtjtjfkr[|j}|j||}qPqW|j}|s||j|xK|dk r|jtjtjfkr|j}|j||}qPqW|r||_|SdSdS)N) r3r=rr rFrr4r<rG)r Zcontentrrrr r r replaceWholeTextVs*           zText.replaceWholeTextcCs_|jjrdSt|}|dkr/dS|jj|}|dkrQdS|jSdS)NF)rGstrip_get_containing_elementrOrisElementContent)r rrr r r !_get_isWhitespaceInElementContentrs   z&Text._get_isWhitespaceInElementContent)rqrrrsrr rFrrrrrr!r"r&r r r r r)s     rZisWhitespaceInElementContentzKTrue iff this text node contains only whitespace and is in element content.Z wholeTextz.The text of all logically-adjacent text nodes.cCs?|j}x/|dk r:|jtjkr.|S|j}q WdS)N)r3rr rJ)rAr@r r r r$s   r$cCs?|j}x/|dk r:|jtjkr.|S|j}q WdS)N)r3rr r)rAr@r r r rs   rc@s@eZdZejZdZddZdddddZdS)Commentz#commentcCstj|||_dS)N)rrr)r rGr r r rs zComment.__init__rcCs<d|jkrtd|jd||j|fdS)Nz--z%'--' is not allowed in a comment nodez %s%s)rGr7r)r r"r rr!r r r rs zComment.writexmlN) rqrrrsr rrrrrr r r r r's   r'c@s:eZdZfZejZdZdddddZdS) CDATASectionz#cdata-sectionrcCs<|jjddkr$td|jd|jdS)Nz]]>rz$']]>' not allowed in a CDATA sectionz)rGfindr7r)r r"r rr!r r r rs zCDATASection.writexmlN) rqrrrsrr rrrrr r r r r(s  r(c@seZdZdZfddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZdS)ReadOnlySequentialNamedNodeMap_seqcCs ||_dS)N)r+)r seqr r r rsz'ReadOnlySequentialNamedNodeMap.__init__cCs t|jS)N)rr+)r r r r rsz&ReadOnlySequentialNamedNodeMap.__len__cCs t|jS)N)rr+)r r r r rsz*ReadOnlySequentialNamedNodeMap._get_lengthcCs+x$|jD]}|j|kr |Sq WdS)N)r+r)r rrr r r rsz+ReadOnlySequentialNamedNodeMap.getNamedItemcCs:x3|jD](}|j|kr |j|kr |Sq WdS)N)r+rtry)r rtryrr r r rsz-ReadOnlySequentialNamedNodeMap.getNamedItemNScCsLt|tr!|j|}n|j|}|dkrHt||S)N)rr,rrr])r Z name_or_tuplerAr r r rs   z*ReadOnlySequentialNamedNodeMap.__getitem__c Cs<|dkrdSy|j|SWntk r7dSYnXdS)Nr)r+r)r r6r r r rs   z#ReadOnlySequentialNamedNodeMap.itemcCstjjddS)Nz"NamedNodeMap instance is read-only)r/r0r)r rr r r rs z.ReadOnlySequentialNamedNodeMap.removeNamedItemcCstjjddS)Nz"NamedNodeMap instance is read-only)r/r0r)r rtryr r r rs z0ReadOnlySequentialNamedNodeMap.removeNamedItemNScCstjjddS)Nz"NamedNodeMap instance is read-only)r/r0r)r rAr r r rs z+ReadOnlySequentialNamedNodeMap.setNamedItemcCstjjddS)Nz"NamedNodeMap instance is read-only)r/r0r)r rAr r r rs z-ReadOnlySequentialNamedNodeMap.setNamedItemNScCs |jgS)N)r+)r r r r rsz+ReadOnlySequentialNamedNodeMap.__getstate__cCs|d|_dS)Nr)r+)r rr r r rsz+ReadOnlySequentialNamedNodeMap.__setstate__N)r+)rqrrrsrrrrrrrrrrrrrrr r r r r*s           r*z&Number of entries in the NamedNodeMap.c@s:eZdZd ZddZddZddZd S) IdentifiedpublicIdsystemIdcCs||_||_dS)N)r.r/)r r.r/r r r _identified_mixin_inits z!Identified._identified_mixin_initcCs|jS)N)r.)r r r r _get_publicIdszIdentified._get_publicIdcCs|jS)N)r/)r r r r _get_systemIdszIdentified._get_systemIdN)r.r/)rqrrrsrr0r1r2r r r r r-s   r-c@speZdZejZdZdZdZdZ dZ ddZ ddZ ddZ dddd d ZdS) DocumentTypeNcCsIt|_t|_|r9t|\}}||_|j|_dS)N)r*entities notationsrrr)r rrurr r r r s    zDocumentType.__init__cCs|jS)N)internalSubset)r r r r _get_internalSubsetsz DocumentType._get_internalSubsetcCsY|jdkrQtd}|j|_|j|_tjjj}|r:g|j_ g|j _ xU|j j D]G}t |j|j |j }|j j j||j|||qmWx|jj D]q}t|j|j |j |j}|j|_|j|_|j|_|jj j||j|||qW|j||||SdSdS)N)rOr3rrr/r0UserDataHandler NODE_CLONEDr4r+r5Notationr.r/rIrkEntity notationNameactualEncodingrrU)r rPclonerhrnotationeentityr r r rQs.         zDocumentType.cloneNodercCs|jd|j|j|jrL|jd||j||jfn#|jro|jd||jf|jdk r|jd|j|j|jd|jd|dS)Nz r r r r5Us zEntity.appendChildcCstjjddS)Nz+cannot insert children below an entity node)r/r0r1)r r>r?r r r r-Ys zEntity.insertBeforecCstjjddS)Nz*cannot remove children from an entity node)r/r0r1)r rCr r r r4]s zEntity.removeChildcCstjjddS)Nz)cannot replace children of an entity node)r/r0r1)r r>rCr r r rDas zEntity.replaceChild)rqrrrsrr Z ENTITY_NODErrr=rrUrrDrErFr5r-r4rDr r r r r;=s         r;c@s+eZdZejZdZddZdS)r:NcCs||_|j||dS)N)rr0)r rr.r/r r r ris zNotation.__init__)rqrrrsr rrrrr r r r r:es  r:c @sjeZdZddddddddgZdd Zd d Zd d ZddZddZdS)DOMImplementationcore1.02.0Nr/ls-load3.0cCs+|dkrd}|j|f|jkS)Nr)lower _features)r rTrUr r r rSys zDOMImplementation.hasFeaturec Cs6|r'|jdk r'tjjd|j}|dkoT|dkoT|dk }| rw|rwtjjd|r t|\}}|dkr|dkrtjjd|r| rtjjd|j||}|r|j ||j ||r ||_|_ ||_ ||_ |S)Nz(doctype object owned by another DOM treezElement with no namer/z$http://www.w3.org/XML/1998/namespacezillegal use of 'xml' prefixz(illegal use of prefix without namespaces) r3r/r0WrongDocumentErr_create_documentZInvalidCharacterErrrrcreateElementNSr5rOdoctyperR) r rtrrRrwZadd_root_elementrurrr r r createDocument~s4                z DOMImplementation.createDocumentcCs"t|}||_||_|S)N)r3r.r/)r rr.r/rRr r r createDocumentTypes   z$DOMImplementation.createDocumentTypecCs|j|dr|SdSdS)N)rS)r rTr r r rZszDOMImplementation.getInterfacecCstS)N)Document)r r r r rPsz"DOMImplementation._create_document)rHrI)rHrJ)rHN)r/rI)r/rJ)r/N)rKrL)rKN) rqrrrsrNrSrSrTrZrPr r r r rGns    -  rGc@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ dS) ElementInforcCs ||_dS)N)r)r rr r r rszElementInfo.__init__cCstS)N)r)r anamer r r rszElementInfo.getAttributeTypecCstS)N)r)r rtryr r r rszElementInfo.getAttributeTypeNScCsdS)NFr )r r r r r%szElementInfo.isElementContentcCsdS)NFr )r r r r isEmptyszElementInfo.isEmptycCsdS)NFr )r rWr r r rszElementInfo.isIdcCsdS)NFr )r rtryr r r rszElementInfo.isIdNScCs|jS)N)r)r r r r rszElementInfo.__getstate__cCs ||_dS)N)r)r rr r r rszElementInfo.__setstate__N)r) rqrrrsrrrrr%rXrrrrr r r r rVs         rVcCsW|jtjkr+|jjd|_n(t|rS|jjjd|j_dS)N)rr r _id_cacheclear_id_search_stackrzrO)rAr r r r:s    r:c@s0eZdZdMZejejejejfZ e Z ej Z dZdZdZdZdZZdZdZdZdZdZdZdZd Zd d Zd d ZddZddZddZ ddZ!ddZ"ddZ#ddZ$ddZ%ddZ&d d!Z'd"d#Z(d$d%Z)d&d'Z*d(d)Z+d*d+Z,d,d-Z-d.d/Z.d0d1Z/d2d3Z0d4d5Z1d6d7Z2d8d9Z3d:d;Z4d<d=Z5d>d?Z6d@dAZ7dBdCZ8dDdEZ9dFdGZ:dHdHdHddIdJZ;dKdLZ<dS)NrU _elem_inforRr[r$rYz #documentNFrcCs4d|_t|_i|_i|_d|_dS)N)rRrlr$r\rYr[)r r r r r s     zDocument.__init__cCs7|jr|j|jf}n |j}|jj|S)N)rtryrr\r)r rr^r r r rs  zDocument._get_elem_infocCs|jS)N)r=)r r r r rDszDocument._get_actualEncodingcCs|jS)N)rR)r r r r _get_doctypeszDocument._get_doctypecCs|jS)N) documentURI)r r r r _get_documentURI szDocument._get_documentURIcCs|jS)N)r)r r r r rE#szDocument._get_encodingcCs|jS)N) errorHandler)r r r r _get_errorHandler&szDocument._get_errorHandlercCs|jS)N) standalone)r r r r _get_standalone)szDocument._get_standalonecCs|jS)N)strictErrorChecking)r r r r _get_strictErrorChecking,sz!Document._get_strictErrorCheckingcCs|jS)N)rU)r r r r rF/szDocument._get_versioncCs|j|jkr:tjjdt|t|f|jdk rY|jj||jtj kr|j rtjjdtj ||S)Nz%s cannot be child of %sz two document elements disallowed) rr.r/r0r1r2r3r4r rJ_get_documentElementr5)r rAr r r r52s    zDocument.appendChildc Csmy|jj|Wn!tk r7tjjYnXd|_|_d|_|j |krid|_ |S)N) r$rEr7r/r0r8r<r=r3documentElement)r rCr r r r4Bs   zDocument.removeChildcCs.x'|jD]}|jtjkr |Sq WdS)N)r$rr rJ)r rAr r r rfNszDocument._get_documentElementcCs6|jdk r%|jjd|_tj|dS)N)rRrHr )r r r r rHSs  zDocument.unlinkcCs|s dS|jjddd}|j|_|j|_|j|_xl|jD]a}t|||}|jj||jt j krn|jt j kr||_ ||_ qPW|jtjjj|||S)N)rRrSrrbrUr$rNrIrr rrCrRr3rkr/r0r8r9)r rPr>rZ childcloner r r rQYs"      zDocument.cloneNodecCst}||_|S)N)rrO)r rbr r r createDocumentFragmentns  zDocument.createDocumentFragmentcCst|}||_|S)N)rrO)r rr@r r r createElementss  zDocument.createElementcCs:t|tstdt}||_||_|S)Nznode contents must be a string)rrrrrGrO)r rGtr r r createTextNodexs     zDocument.createTextNodecCs:t|tstdt}||_||_|S)Nznode contents must be a string)rrrr(rGrO)r rGr@r r r createCDATASections     zDocument.createCDATASectioncCst|}||_|S)N)r'rO)r rGr@r r r createComments  zDocument.createCommentcCst||}||_|S)N)r rO)r r rGpr r r createProcessingInstructions z$Document.createProcessingInstructioncCs"t|}||_d|_|S)Nr)rrOr)r rar r r createAttributes   zDocument.createAttributecCs1t|\}}t|||}||_|S)N)rrrO)r rtrruryr@r r r rQs zDocument.createElementNScCs=t|\}}t||||}||_d|_|S)Nr)rrrOr)r rtrruryrpr r r createAttributeNSs   zDocument.createAttributeNScCs"t||||}||_|S)N)r;rO)r rr.r/r<r@r r r _create_entitys zDocument._create_entitycCst|||}||_|S)N)r:rO)r rr.r/rr r r _create_notations zDocument._create_notationcCs||jkr|j|S|jp)|js0dS|j}|dkr]|jg}||_n |sgdSd}x|r|j}|jdd|jD|j|}|rxI|j j D]}|j r |j |j |j r||j|j<|j|kr|}q|jsPq|j|jrg||j|j<|j|krZ|}q|jsPq|jr||j|j<|j|kr|}q|jdkrPqWnQ|jrxE|j j D]4}|jr||j|j<|j|kr|}qW|dk rpPqpW|S)NcSs%g|]}|jtkr|qSr )rr9).0rMr r r s z+Document.getElementById..r()rYr\rr[rgpopextendr$rrrrtrryrrrrr)r rstackresultrArrr r r getElementByIdsZ                  zDocument.getElementByIdcCst||tS)N)rrl)r rr r r rszDocument.getElementsByTagNamecCst|||tS)N)rrl)r rtryr r r rszDocument.getElementsByTagNameNScCs|jj||S)N)rRrS)r rTrUr r r rVszDocument.isSupportedcCs[|jtjkr'tjjdn$|jtjkrKtjjdt|||S)Nzcannot import document nodesz!cannot import document type nodes)rr rr/r0NotSupportedErrrCrN)r rArPr r r importNodes zDocument.importNodercCse|dkr |jd|n|jd||fx'|jD]}|j||||qAWdS)Nzz%%s)rr$r)r r"r rr!rrAr r r rs   zDocument.writexmlcCs|j|k r.tjjd||jf|jtjtjfkr[tjjd|t krd|kr|j dd\}}|dkr |tjj kr tjj dq|dkr|tjj kr|jtjkrtjj dd}|}n d}d}|jtjkr[|j }|dk ra|j}|j|nd}||_||_||_||_|jtjkr||_n5||_|dk r|j||r|j||S)Nz?cannot rename nodes from other documents; expected %s, found %sz8renameNode() only applies to element and attribute nodesrr(rzillegal use of 'xmlns' prefixz$illegal use of the 'xmlns' attribute)rOr/r0rOrr rJrr|rrrrrrrrurrtrrrrr)r rrtrruryrZis_idr r r renameNodesR                        zDocument.renameNode)r\rRr[r$rY)=rqrrrsrr rJrrrCr.rGrRrrrrrr3r=r<r=rrbrUrdr`r^rrrrDr]r_rErarcrerFr5r4rfrHrQrhrirkrlrmrorqrQrrrsrtr{rrrVr}rr~r r r r rUsh                             :     rUrgz#Top-level element of this document.c Cs|jj|r$tjjj}ntjjj}|jtj kr|j |j |j }xW|j jD]F}|j|j |j |j|j|j |j}|j|_qmW|rx|jD]%}t|||}|j|qWn|jtjkrM|j}|rx|jD]%}t|||}|j|q!Wnv|jtjkrt|j|j}nO|jtjkr|j|j}n(|jtjkr|j|j |j}n|jtj!kr|j"|j}n|jtj#kr1|j$|j |j }d|_|j|_n|jtj%krtjjj}|j&j'|j(|j)|j*}||_|rg|j+_,g|j-_,xm|j-j,D]_} t.| j | j)| j*} || _|j-j,j/| t0| dr| j1|| | qWx|j+j,D]} t2| j | j)| j*| j3} | j4| _4| j5| _5| j6| _6|| _|j+j,j/| t0| dr| j1|| | qWntjj7dt8|t0|dr|j1||||S)NTrkzCannot clone node %s)9rOrYr/r0r8r9Z NODE_IMPORTEDrr rJrQrtrrrrrrryrr$rNr5r+rhrFrkrGrrlrror rrmrrrrCrRrTrr.r/r4r+r5r:rIrdrkr;r<r=rrUr|r2) rArPZnewOwnerDocumentrhr>rrprMr@rr?r@rAr r r rNAs|                 rNcCs:|jdd}t|dkr(|Sd|dfSdS)Nrr(r)rr)rZfieldsr r r rsrcCs<|||}|j\}}|j||j|S)N)ZgetEventZ expandNoderZ)funcargskwargseventsZtoktypeZrootNoder r r _do_pulldom_parses   rcCsf|dkr0| r0ddlm}|j|Sddlm}t|j|fd|d|iSdS)Nr) expatbuilder)pulldomparserbufsize)xml.domrparserr)filerrrrr r r rs  rcCsY|dkr)ddlm}|j|Sddlm}t|j|fd|iSdS)Nr)r)rr)rr parseStringrr)stringrrrr r r rs   rcCs[|rTt|tr$tj|}x-|D]%\}}tjj||s+dSq+WtjS)N)rrrZ_parse_feature_stringrUrRrS)Zfeaturesfvr r r getDOMImplementationsr)6rrr/rrrrZxml.dom.minicompatZxml.dom.xmlbuilderrrr0r rJrr9Z defpropertyrBrzrrrrrobjectrZ AttributeListrrrrr r rrr$rr'r(r*r-r3r;r:rGrVr:rUrNrrrrrr r r r s  "      y    )GU     > <( O* O  R